2017-08-24 165 views
1

在ER图中,是否有可能将两个弱实体相互关联?如果可能的话,如何唯一地识别它们中的记录?是否可以将两个弱实体相互关联?

+0

请给你正试图在这里实现什么样的例子。 –

+0

例如,公司数据库中的“员工子女”表是弱实体。这取决于“员工”表。是否有可能将另一个弱项与“雇员的子女”表相关联? –

回答

2

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

Relationship between weak entity sets

InvoiceLine实体集由(InvoiceNumber, LineNumber)识别。同样,ReceiptLine实体集由(ReceiptNumber, LineNumber)标识。

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

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

如果我们把我们的ER图,以表格模型,我们得到如下:

Table diagram implementing relationship between weak entity sets

我把它翻译直接帮你看这些图之间的对应关系,但在实践中,我们可以非规范化的Paid关系关系为一个更简单的物理模型的ReceiptLine实体关系。这只能用于与单个确定实体集合的关系,因此首先了解一般方法非常重要。

Simplified tabular model

相关问题