ER 设计中的弱实体

问题描述 投票:0回答:2
我有一个弱实体,它有一个

id

 作为其主键,并且还有另一个属性 (
author_id
),它必须引用另一个实体的 (
Author
's) 主键。 

所以我的问题是:弱实体可以有复合键(

id, author_id

)吗?

database database-design entity-relationship
2个回答
1
投票
如果 Id 是键,那么 (Id, Authorid) 不可能是同一个表中的键。没有一个键是另一个键的子集,因为根据定义,键应该是不可约唯一的。

你的问题的答案是肯定的。弱实体可能有复合键。


0
投票
弱实体是一种主键至少包含一个外键的实体,但不仅仅包含外键。 仅使用一种属性这是不可能的。所以

    如果你的主键真的只是
  • id
    ,那么你就没有弱实体,而是强实体;
  • 如果您的主键是
  • id
    whatever
    ,并且 
    id
     本身已经是唯一的,那么 
    id
     本身应该是您的主键;
  • 如果您的主键是
  • id
    whatever
    ,并且 
    id
    whatever
     本身都不是唯一的,但 
    id
    whatever
     一起是唯一的,那么它们是合法的主键,并且
    
      如果
    • id
      whatever
      一起是外键,那么你没有弱实体,而是子实体(外键是IS-A关系);
    • 如果
    • id
      whatever
       都是外键,则您没有弱实体,而是关系;
    • 如果
    • id
      whatever
       之一是外键,而另一个不是,则您的实体是弱实体。
所有这些情况都可能发生。这取决于您想要建模的内容以及您拥有哪些相关信息。

© www.soinside.com 2019 - 2024. All rights reserved.