1

我想知道哪个是最好的。我有一张表说A有col1(是外键fk1),col2(也是外键fk2)。我可以将 PK 用作 (col1,col2) 还是新生成的 PK。查询将在标准中包含 fk1,在连接中包含 fk2。请给我推荐一个最好的。

PS我正在使用mysql

4

2 回答 2

2

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

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

如果您还打算在连接中搜索col2和使用,则col1需要在(col2). 该索引将隐式包含PRIMARY KEY作为记录指针的值,因此,实际上将是和索引 on (col2, col1, col2)

于 2010-02-04T16:02:53.437 回答
0

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

于 2010-02-04T16:06:19.730 回答