2016-10-03 67 views
0

我有两个涉及子类型的ERD示例。我似乎无法在网上或教科书中找到任何关于将其他实体连接到子类型的明确信息,以及如果可以的话,您可以从子类型继承密钥的距离。那些眼睛好的人可能会注意到我最近问了一个类似的亚型问题,但是这是针对不同的情况,到目前为止我只收到了另一个问题的转介,这个问题只解释了我不需要的亚型基础知识 - 我感觉到是一个更高级的话题来解决。桥接实体从亚型实体ERD设计

我的具体问题是我需要知道是否允许名为ENROLLMENT的Bridging实体从STUDENT实体继承PATRON的子类型PK/FK。如果是这样,则允许PatronNumber和/或StudentNumber属性。

这两个ERD示例稍有不同。版本1使用子类型学生的PatronNumber。版本2包含另一个名为StudentNumber的PK。这是可以添加为PK和可以从这里注册参考?哪个更好?

ERD Version1

ERD Version2

干杯!

回答

0

第一个版本是首选,因为对于单个值PatronNumber,您可以通过单个连接获取关于学生的所有信息,而在第二种情况下,您需要执行两个连接。

想象一下,例如,您需要知道注册到课程编号3的所有学生的名称:您可以简单地在注册和赞助人之间执行连接,而在第二种情况下,您需要连接招生和学生,然后在学生和赞助人之间。

如果您的应用程序明确要求与PatronNumber不同的StudentNumber,您可以简单地将该属性添加到学生,并声明它是唯一的。