gpt4 book ai didi

mysql - 查找表中的两个表是否也需要有主键?

转载 作者:行者123 更新时间:2023-11-29 11:10:01 25 4
gpt4 key购买 nike

我在我的研究项目中使用MySQL 5.7 和 WB6.3 来设计ER 图。

当我尝试创建多对多关系时。默认情况下,MySQL 也会将两个表的主键标记为查找表中的主键。

是否真的需要将两个表中的主键也作为查找表中的主键?

请参阅下面图表中的表car_item,我已从红色(idcar,iditem) 中删除了主键。请告诉我是否需要PK

My ER diagram

最佳答案

(car_idcar, item_list_iditem_list) 应该有一个唯一键,但它不一定是主键。这样,您就可以确保不会在两个表中的相同行之间创建重复的关系。

一张表只能有一个主键,而car_item表已经有主键id_car_item,因此关系的外键不能同时是主键 key 。但可以有任意数量的唯一键。

一些纯粹主义者可能会说,如果有两个唯一键(主键也是唯一键),那么其中一个是多余的。在您的情况下, id_car_item 列可能并不是真正必要的,因为引用其他表中的关系并不常见,关系表仅用于连接其他两个表。但情况并非总是如此。例如,用户表可能有一个唯一的 username 列(因为您不允许多个用户具有相同的名称),但也有一个使用的 userid 主键作为其他表中的外键(这允许重命名用户而不必更新所有外键)。一些数据库设计者喜欢在每个表中都有一个自动增量列,因为它可以作为用户界面应用程序中的引用。

关于mysql - 查找表中的两个表是否也需要有主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40772364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com