2010-02-04 70 views
1

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

+0

这只是一个链接表吗? – froadie 2010-02-04 16:04:25

回答

2

如果这是一个许多一对多连接表

P.S,只需使用(col1, col2)PK

MySQL中的外键意味着InnoDB它是索引组织的,这意味着表本身将是PRIMARY KEY,它的记录将被排序。

如果您还要搜索col2并在连接中使用col1,则需要在(col2)上创建附加的二级索引。该索引将隐含地包括作为记录指针的PRIMARY KEY值,因此实际上将是(col2, col1, col2)的索引。

0

正如其他人所说 - 如果这是一个链接表,使用col1,col2作为PK。另一方面,如果该表也可以链接到TO,则创建它自己的新密钥。您也可以对col1,col2对设置一个唯一的约束。