是否有可能将两个弱实体相互联系起来?

Is it possible to relate two weak entities each other?

在 ER 图中,是否可以将两个弱实体相互关联?如果可以,如何唯一标识其中的记录?

当然有可能。考虑以下 ER 图,其中发票由行组成,收据被分解为分配给发票行的相应行。可以将多个收据行分配给同一个 InvoiceLine。它可能有点做作,但它会作为一个例子。

InvoiceLine 实体集由 (InvoiceNumber, LineNumber) 标识。类似地,ReceiptLine 实体集由 (ReceiptNumber, LineNumber).

标识

任何实体集之间关系的决定因素是实体集在多角色中的决定因素的组合。实体集是弱实体集还是规则实体集,或者关系中是否涉及两个或多个实体集都无关紧要。在1:1(或1:1:1等)关系的情况下,所涉及的任何实体集都可以用作行列式。

在我们的示例中,ReceiptLine 是多重角色中的唯一实体集(由 Paid 关系菱形旁边的 N 表示)。这意味着关系由 ReceiptLine 的行列式决定,即 (ReceiptNumber, LineNumber).

如果我们将 ER 图转换为表格模型,我们将得到以下内容:

我直接翻译出来是为了帮​​助大家看图之间的对应关系,但实际中我们可以将Paid关系反规范化为ReceiptLine实体关系,以获得更简单的物理模型。这只能针对与单个确定实体集的关系来完成,因此您首先了解一般方法很重要。