【问题标题】:need and use of weak entities in ER diagramsER图中弱实体的需要和使用
【发布时间】:2015-02-05 23:22:28
【问题描述】:

我有两个实体

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

我的发布者是一个弱者。

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

【问题讨论】:

    标签: database relational-database entity-relationship


    【解决方案1】:

    1) 如果没有项目的要求,就无法回答这个问题。弱意味着不能仅通过其属性来识别实体。我同意出版商可能很弱,因为 name 或 number_of_books_published 或它们的任何组合都不能保证是唯一的。

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

    理论上(我不知道这是否真的发生(我从未见过)),一本教科书可以由多个出版商出版(印刷的可能性更大),因此在教科书中拥有出版商的主键将使教科书成为一个强大的实体。我发现这不太可能,因此更好的解决方案是关系表 - 即 PublisherBook 持有出版商和教科书的主键,这样出版商可以出版许多书籍,而一本书可以由许多出版商出版(这可能在时间说一个出版商倒闭了,这本书不是由另一个出版商出版的)。在此模型中,您可以保持“历史”,而无需更新教科书表上的 PublisherId 并失去以前的发布者。

    【讨论】:

      猜你喜欢
      • 2017-02-19
      • 2021-05-31
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2018-04-11
      相关资源
      最近更新 更多