gpt4 book ai didi

database - 一对多关系 : composite primary key or single primary key?

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:44 26 4
gpt4 key购买 nike

我有一个表 person 包含个人信息,我还有另一个表 person_contact 来存储关于那个人的联系信息(type 显示如果它是电话记录或电子邮件记录,record 包含实际的电话号码或电子邮件地址)。

我设计的模式是这样的: enter image description here

person_contact 中,我已将 pcont_idperson_id 声明为 PK,而 person_id 是引用 的 FK person.person_id.我是否需要 PK pcont_id?什么时候应该在一对多关系中使用单个 PK,什么时候使用复合 PK 更好?

最佳答案

您不需要 person_id 作为 person_contact 表中主键的一部分。如果两个表之间存在一对多关系,则 pcont_id 应该是主键。

Do I need the PK pcont_id at all?

我建议,假设您可以为一个人设置多个联系人,它应该在那里并且应该是您的表的主键。

如果一个人只能有一个联系人,那么你不需要那个表本身,你可以直接将数据存储在人员表中。

如果您仍想单独存储它,则不需要 pcont_id 列,您的 person_id 列应标记为主键。

When should I use a single PK in a one-to-many relationship and when is it better to use composite PK?

当您有一个联结表/关联表 来映射多对多关系时,将使用复合主键。在一对多关系的情况下,您不需要带有外键列的复合主键。

关于database - 一对多关系 : composite primary key or single primary key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328211/

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