gpt4 book ai didi

database-design - 如何最好地实现RDBMS中的1:1关系?

转载 作者:行者123 更新时间:2023-12-02 06:12:00 24 4
gpt4 key购买 nike

昨天,在进行一个项目时,我遇到了一种特殊的1:1关系,这让我想知道-如何最好地实现这一点(显然,我们做错了:D)

这个想法是,有两种类型的实体,A和B。它们可以各自独立存在,但是它们之间也可以有联系。如果存在链接,则它必须是1:1链接,并且可以双向工作。

就像一个瓶子和一个盖子。它们可以分开存在,但是当耦合在一起时,瓶子将只有一个盖,并且该盖子将仅附接到一个(和同一个)瓶子上。

在牢记有关规范化,数据完整性等所有最佳实践的同时,如何实现这种关系?

添加:几乎忘了说-它们每个都有十几个属性,因此将它们放在同一表中且其中一半字段为NULL是一个很尴尬的解决方案。同样,可以随时断开链接并与另一个实体重新创建该链接。

最佳答案

为了解决这个问题,我将从标准的多对多关系布局开始。

TableA
AId
AInfo

TableB
BId
BInfo

TableA2B
AId
BId

然后,我将使用触发器,唯一索引,约束来强制表中的1:1关系。确切的方法将取决于系统需求。

我之所以喜欢这种格式,是因为许多关系都将属性作为关系的一部分,而不是实体的一部分。这种模式可以满足现在和将来的需求。

例如:某人为一家公司工作。该关系的雇用日期与个人实体或公司实体不符。

关于database-design - 如何最好地实现RDBMS中的1:1关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1729016/

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