2015-02-05 65 views
0

使用弱实体的,我有两个实体需要和ER图

textbook(ISBN primary key, name, auhor etc...) is published by publisher(name, number_of_books_published etc...)

我的发布者是一个弱实体。

  1. 为什么我需要这个实体保持弱而不强?它的意义是什么?
  2. 如果我将BookISBN主键添加到发布者,它将成为一个强大的实体。那么两种设计之间会有什么不同呢?

回答

0

1)没有项目的要求,没有办法回答这个问题。弱意味着实体不能单独通过其属性来识别。我同意发行人可能很弱,因为无论是姓名还是书号或其组合都不能保证是唯一的。

2)将BookISBN添加到发布者将不正确。一对多的关系发生在另一个方向;即发布者发布许多书 - 这由发布者的number_of_books_published属性证实(由于您始终可以计算该值,因此可以说这不是必需的)。在理论上(我不知道这是否真的发生了(我从来没有见过)),一本教科书可能被多个发布者发布(印刷更有可能),所以发行人的主键在教科书将使教科书成为一个强大的实体。我认为这不太可能,所以更好的解决方案是关系表 - 即PublisherBook包含出版商和教科书的主键,这样出版商可以出版许多书籍,并且书籍可以由许多出版商出版(这可能在许多出版商中发挥更重要的作用)有时候说一个发布商倒闭了,这本书不是由另一个发布商发布的)。在这个模型中,你可以在没有更新教科书表上PublisherId的情况下维护“历史”,并且可以放弃以前的发布者。