gpt4 book ai didi

database - 数据库设计中哪些表应该为主子

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

我正在快速学习数据库设计的来龙去脉(一周前,这对我来说还是新的),但我遇到了一些看起来不是很明显的问题,所以我希望得到一些澄清。

我答对的问题是关于外键的。作为我设计的一部分,我有一个Company 表。最初,我将地址信息直接包含在表中,但是,因为我希望实现 3NF,所以我将地址信息分解到它自己的表中,地址。为了保持数据的完整性,我在 Company 中创建了一个名为“addressId”的行作为一个 INT,Address 表有一个对应的 addressId 作为它的主键。

我有点困惑(或者我想确保我做的正确)是确定哪个表应该是主(引用)表,哪个应该是子(引用)表。当我最初设置它时,我将 Address 表设置为主表,将 Company 表设置为子表。但是,我现在认为这是错误的,因为每个公司应该只有一个地址,如果公司行被删除,我希望相应的地址也被删除(CASCADE 删除)。

我可能完全错误地处理了这个问题,所以我很感激任何关于在使用外键时如何最好地考虑表之间的关系的好的经验法则。谢谢!

最佳答案

将其视为有很多 关系。公司肯定地址(在您的示例中),因此它应该是父表,地址表应该引用公司表。另一方面,如果许多不同的公司共享同一个地址,则可能相反。因此,这也取决于您的需求(您尝试建模的逻辑)。

关于database - 数据库设计中哪些表应该为主子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811912/

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