【发布时间】:2017-07-21 03:06:28
【问题描述】:
我正在建模一个数据库,其中有两个交叉关系。该模型看起来不错,但我不知道如何将其转换为关系模型,因为会有两个关系引用递归(如果那是正确的词)。
Entity-relationship model(我省略了这些属性,因为它们没有提供有用的信息)
这就是它的模型:一个生物可以生育 N 次,同时在一次生育中可能会出生多个生物。
我知道在关系模型中,必须先定义关系,然后才能引用它,所以我不知道如何解决这个问题。
编辑:正如 sqlvogel 正确指出的那样,我的模型没有多大意义。为了实用,在 Birth 一侧出生的基数应该是 0..1,因此允许存储“没有父母”的第一层存在。这也应该解决可延迟约束的问题,即使它不是以最优雅的方式。
【问题讨论】:
-
当定义的各个部分相互定义或定义它们自己时,定义是递归的。在这里,我们只有两个同时存在的约束。 (FK,称为关系,但不是。)它们引用彼此的表。但是没有相互/自我定义。例如,如果我说,表 T 和 U 必须相等,您不会称其为约束的递归定义,它不是值的定义,即使您无法在不更改的情况下更改另一个。
标签: database-design relational-database