我想知道哪个会是最好的。我有一个表,说A有col1(是一个外键fk1),col2(也是一个外键keyfk2)。PK可以作为(col1,col2)或者新生成的PK使用吗?查询将在条件中具有fk1,在联接中具有fk2。请给我推荐一个最好的。
附注:我使用的是mysql
发布于 2010-02-05 00:02:53
如果这是一个多对多的链接表,只需使用(col1, col2)作为PK。
MySQL中的外键意味着按索引组织的InnoDB,这意味着表本身将是PRIMARY KEY,它的记录将被排序。
如果您还打算搜索col2并在连接中使用col1,则需要在(col2)上创建一个额外的辅助索引。该索引将隐式地包括作为记录指针的PRIMARY KEY值,因此,实际上将是(col2, col1, col2)上的and索引。
发布于 2010-02-05 00:06:20
正如其他人所说的-如果这是一个链接表,使用col1,col2作为PK。另一方面,如果这个表也可以链接到,那么创建一个它自己的新键。您还可以对col1、col2对施加唯一的约束。
https://stackoverflow.com/questions/2201065
复制相似问题