在ER图中需要和使用弱实体

时间:2015-02-05 15:00:17

标签: database relational-database entity-relationship

我有两个实体

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

我的发布商是一个弱势实体。

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

1 个答案:

答案 0 :(得分:0)

1)没有项目要求,没有办法回答这个问题。弱意味着实体不能仅通过其属性来识别。我同意发布者可能很弱,因为名称或number_of_books_published或其任何组合都不保证是唯一的。

2)将BookISBN添加到发布者是不正确的。一对多的关系发生在另一个方向;即出版商出版了许多书籍 - 这是由出版商的number_of_books_published属性确认的(可以说这是不必要的,因为你总能计算出这个值)。

理论上(我不知道这是否真的发生过(我从未见过)),一本教科书可能会被多个出版商出版(更有可能),因此拥有主要密钥教科书中的出版商会使教科书成为一个强大的实体。我发现这不太可能,所以一个更好的解决方案是关系表 - 即PublisherBook,它保存出版商和教科书的主键,这样出版商可以出版许多书籍,许多出版商可以出版一本书(可能会发挥更重要的作用)时间说一个出版商破产,这本书不是由另一个出版商出版的)。在这个模型中,你有可能保持"历史"没有说更新教科书表上的PublisherId并且丢失了之前的发布者。

相关问题