我想知道哪个是最好的。 我有一张桌子说A有col1(是外键fk1),col2(也是外键fk2)。 我可以使用PK作为(col1,col2)或新生成的PK。 查询将在条件中具有fk1,在连接中具有fk2。 请建议我最好的一个。
P.S我正在使用mysql
答案 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对上添加唯一约束。