gpt4 book ai didi

sql - 数据库设计: Alternate to composite keys?

转载 作者:行者123 更新时间:2023-12-01 17:26:15 25 4
gpt4 key购买 nike

我正在构建一个数据库系统,但在设计一个表时遇到了问题。

在这个系统中有一个用户表、一个对象表、一个项目表和成本表。

成本表中的唯一记录由用户、对象、项目和年份确定。但是,如果项目不同,则可能存在多个具有相同年份的记录。

层次结构为用户->对象->项目->年份,每个项目多个唯一年份,每个对象多个唯一项目,每个用户多个唯一对象,多个唯一用户。

设计成本表的最佳方法是什么?

我正在考虑将 userid、objectid 和 itemid 作为外键,然后使用由 userid、objecid、itemid 和 costyear 组成的复合键。我听说复合键的设计很糟糕,但我不确定如何构建它以避免使用复合键。正如你所见,我的数据库构建技能有点生疏。

谢谢!

附注如果重要的话,这是一个跨数据库数据库。

最佳答案

为了避免复合键,您只需定义一个代理键。这拥有一个人工值,例如自动计数器。

您仍然可以(并且应该)在这些列上定义唯一约束。

顺便说一句:不仅建议不要使用复合键,还建议使用代理键。在您所有的表中。

关于sql - 数据库设计: Alternate to composite keys?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532470/

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