gpt4 book ai didi

sql - Postgresql:具有一列的表的主键

转载 作者:行者123 更新时间:2023-11-29 12:07:27 34 4
gpt4 key购买 nike

有时,应用程序中的某些表在每个表中只有一列。各列内的记录数据是唯一的。示例是:国家名称表、产品名称表(例如,最多 60 个字符)、公司代码表(3 个字符长,由用户确定)、地址类型表(例如,账单、送货)等

对于这样的表,由于记录是唯一的且不为空,从技术上讲,唯一的列可以用作主键。

所以我的问题是,将该列用作表的主键是否足够好?或者,是否仍然需要添加另一列(country_id、product_id、company_id、addresstype_id)作为表的主键?为什么?

提前感谢您的任何建议。

最佳答案

在使用代理键和复合键作为主键之间总是存在争论。使用复合主键总是会给您的数据库设计和应用程序带来一些复杂性。

认为您有另一个表需要在结果表(计费表)之间建立直接关系。对于复合键方案,您需要在相关表中有 4 列才能连接到账单表。另一方面,如果您使用代理键,您将有一个标识列(简单),您可以在 (country_id, product_id, company_id, addresstype_id)

上创建唯一约束

但很难说这种方法比另一种方法更好,因为它们各有利弊。

可以查看This了解更多信息

关于sql - Postgresql:具有一列的表的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54722834/

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