【问题标题】:What is a weak entity? Would a weak entity be found in this example and why?什么是弱实体?在这个例子中会发现一个弱实体吗?为什么?
【发布时间】:2017-10-11 11:06:55
【问题描述】:
是否有任何弱实体。如何识别弱实体。如果您确实找到了一个弱实体,请您向我解释为什么它是一个弱实体。你是怎么得出这个结论的?请告诉我。
聚合:
-图书馆
实体:
-资源
-书
-隔间
- 书籍贷款申请
- 借书
-员工
-签约(签约借书)
-练习(在线确认用户的贷款申请)
- 隔间贷款
-用户(申请书借或隔间借)
- 罚款(如果他们有书籍逾期,给予用户)
【问题讨论】:
标签:
database
entity
entities
weak-entity
【解决方案1】:
弱实体集是无法通过其自身属性识别的实体集。弱实体集至少部分地通过它们与另一个实体集的关系来识别。这意味着弱实体集的主键将包含一个外键。
例如:
Invoice (invoice_id PK, ...)
LineItem (invoice_id FK/PK, line_number PK, ...)
为了在您的示例中识别弱实体集,我们需要知道您的实体集是如何识别的。这是一个设计决策,而不是任何实体集固有的东西。任何弱实体集都可以通过引入代理键转换为规则实体集,代理键也将与其父实体的标识关系转换为规则关系。因此,在您决定如何识别您的实体集之前,没有办法知道。
考虑如何识别每个实体集。书籍通常由 ISBN 编号标识,这将被视为其自身的属性。您如何识别一本书的多个副本?每个人都可以获得自己的序列号,或者可以为每个 ISBN 的副本编号。后一种方法表示弱实体集。隔间呢?每个隔间是否都有自己独特的身份,或者它们是否相对于特定的房间/楼层/建筑物/站点/公司进行编号?在后一种情况下,将其建模为弱实体集可能是个好主意。图书借阅可以通过代理键或图书标识符和借阅日期的组合来识别。对于每个实体集,可以将其想象为常规或弱实体集。