复合键或New Unique键

时间:2010-02-04 15:57:23

标签: mysql composite-primary-key

我想知道哪个是最好的。 我有一张桌子说A有col1(是外键fk1),col2(也是外键fk2)。 我可以使用PK作为(col1,col2)或新生成的PK。 查询将在条件中具有fk1,在连接中具有fk2。 请建议我最好的一个。

P.S我正在使用mysql

2 个答案:

答案 0 :(得分:2)

如果这是一个多对多链接表,只需使用(col1, col2)作为PK

MySQL中的外键暗示InnoDB是由索引组织的,这意味着表本身将是PRIMARY KEY并且它的记录将被订购。

如果您还要在联接中搜索col2并使用col1,则需要在(col2)上创建其他辅助索引。该索引将隐式包含PRIMARY KEY值作为记录指针,因此实际上将成为(col2, col1, col2)的索引。

答案 1 :(得分:0)

正如其他人所说 - 如果这是一个链接表,请使用col1,col2作为PK。另一方面,如果此表也可以链接到TO,则创建自己的新键。您还可以在col1,col2对上添加唯一约束。