这里是场景。ERD - 实体关系图 - 复杂而棘手的关系
两个完全不同的实体以相同的方式与第三个实体独立相关。我们如何在ERD中表示它?或(增强ER)
例:
- 学生 “借” 书(从库)
- 部门 “借” 书(从同一个库)。
如果我两次定义'BORROWS'关系,它在图中的外观方面会很笨拙和笨拙,并且增加了实现的复杂性。
与此同时,我不能声明三元关系,因为STUDENT和DEPARTMENT在关系实例中没有相互关系。
但是,我找不到更好的方法。
我该如何解决?
这里是场景。ERD - 实体关系图 - 复杂而棘手的关系
两个完全不同的实体以相同的方式与第三个实体独立相关。我们如何在ERD中表示它?或(增强ER)
例:
如果我两次定义'BORROWS'关系,它在图中的外观方面会很笨拙和笨拙,并且增加了实现的复杂性。
与此同时,我不能声明三元关系,因为STUDENT和DEPARTMENT在关系实例中没有相互关系。
但是,我找不到更好的方法。
我该如何解决?
如果要相信维基百科,Enhanced ER允许继承。为什么你没有BORROWER实体(有适当的关系),并且有STUDENT和DEPARTMENT子类?
我一直有类似的问题 - 公司或个人可以订购产品。
你有一个order
,它可以属于person
或company
- 那么你把关系链接到什么?我在想订单会有一个companyId
和一个personId
外键,但是如何让它们独占?返回的数据不一定相同 - 例如,company
没有first name
/last name
字段。
我想这可能由具有name
返回来完成,并且在person
的情况下建立串出的firstname
/lastname
,并在company
的情况下使用companyname
领域。
我是通过泛化来完成的。例如:在你的情况下,我会创建Customer表。人与公司是其子类。客户包含customerId。 OrderInfo指向customerId,从中您可以推导出您的订购者是否是公司/个人。 – Firefox
感谢您的答复aix。 这绝对是一个解决方案。 我只是想知道实现过程中的复杂性,即创建表。 如果在编程环境中出现这种情况,那么它将是最合适的解决方案。我仍然不确定在数据库环境中。 – Firefox
@Firefox:除了“图表上的尴尬和笨拙的外观”之外,您试图解决的真正问题是什么? – NPE
我只是在实施过程中寻找一种不太复杂的解决方案,但却满足所有要求。 当我提到,尴尬和笨拙,这是两个重复关系的情况下,这也导致数据库中的多个表。 – Firefox