我最近在不同的项目中多次遇到这种情况。这是四个表的图表,用字母标记:
A
1 / \ 1
/ \
* / \ *
B C
1 \ / 1
\ /
* \ / *
D
在这种情况下,如果给定的 from和B
to的键不匹配,则数据可能会变得不一致。A
C
A
D
对于特定的(编造的)示例,想象A
is Company
、B
is Employee
、C
isProject
和D
is WorkItem
。在这种情况下,没有什么可以阻止创建声称分配给甚至不为拥有该项目的公司工作的人的工作项。
我主要是好奇,这个问题有设计解决方案吗?我知道在实际应用中这很重要,您可以使用触发器或其他一些保护措施。我还没有找到一种方法来更改表格以使这种不一致成为不可能。有办法吗?
请注意,仅切断其中一个连接,例如 from C
toA
是行不通的,因为如果不D
存在 ' ,C
您将无法将连接追溯到A
.