0

创建多对多关系时,索引已用作复合主键的 2 个字段是否正确?

PRIMARY KEY (`lineup_id`, `term_id`) ,
INDEX `lineup_id1_idx` (`lineup_id` ASC) ,
INDEX `term_id1_idx` (`term_id` ASC) ,

由于我将它们标记为外键,因此 MySQL Workbench 添加了lineup_id这种重新索引。term_id在这种情况下,我还应该将它们标记为外键吗?

4

2 回答 2

0

唯一应该这样做的情况是,如果您的查询使用复合键的第二列,因为索引从左到右工作。否则,您应该使用单个复合键。或者,您可以创建代理键。

于 2013-01-27T21:12:41.323 回答
0

如果您需要两者的索引lineup_id并且term_id您只能添加INDEX term_id1_idx (term_id ASC)PK 也可以lineup_id。并考虑njk建议。

于 2013-01-27T21:15:30.343 回答