Mysql表设计了两个主键vs一个

时间:2014-05-28 20:12:39

标签: mysql database-design

我想知道以下哪个是更好的设计。

我有这些表

users
ID | NAME

Categories
ID | NAME

哪一个更好,这个:

users_to_categories
CAT_ID | USER_ID

在这种情况下,CAT_ID和USER_ID是主键

或一个主键

users_to_categories
ID | CAT_ID | USER_ID

只有ID是主键

2 个答案:

答案 0 :(得分:0)

我假设您尝试使用名为Users_to_Categories的第三个表创建两个表之间的多对多关系。如果是这样,那么CAT_ID和USER_ID将成为用户和类别中主键的外键指针。

所有这一切,我都会参考这个帖子中给出的答案(SQL - many-to-many table primary key)。我同意这里给出的答案,并说当CAT_ID / USER_ID的组合本身可以作为主键时,创建新的自动增量主键确实没有优势。

答案 1 :(得分:0)

Altought两个设计都很好,我建议选择一个单一的领域进行关键的方法。

查询更容易。

当您想要将某些详细信息记录从父表中的父表更改为另一个时,它也会更容易,只需更改父外键即可。