在不能保证任何单字段都包含唯一值时,可以将两个或更多的字段指定为主键。这种情况最常出现在用于多对多关系中关联另外两个表的表。“多对多关系”是关系数据库中较难理解的概念,但却非常实用,它说明如A 表中的记录能与 B 表中的许多行记录匹配,并且B表中的记录也能与A表中的许多行记录匹配。此关系的类型仅能通过定义第三张表(称作“联结表”)的方法来实现,其主键包含二个字段,即来源于A和B两张表的外部键。多对多关系实际上是使用第三张表的两个一对多关系。例如,“订单”表和“产品”表就可能有一个多对多的关系,它是通过“订单明细”表中两个一对多关系来创建的。