【问题标题】:Can weak entity has more than one primary key if it has more than one strong entity?如果弱实体有多个强实体,它可以有多个主键吗?
【发布时间】:2021-04-08 14:16:43
【问题描述】:

如果我有一个没有属性的弱实体,并且与所有者实体有四个弱关系,并且我想为这个弱实体设计关系模式,我可以获取与该弱实体有关系的所有强实体的主键吗?弱实体并将它们作为弱实体的主键? 我在下面添加一个示例,我的问题是关于“侦察”实体。

ER diagram(Recon entity)

【问题讨论】:

    标签: database database-design foreign-keys relational-database composite-primary-key


    【解决方案1】:

    将相关强实体的主键迁移到弱实体的主键中。结果是一个(复合)主键,而不是多个主键1

    生成的表格如下所示:

    CREATE TABLE Recon (
    
        sin int REFERENCES Person,
        method int REFERENCES Method,
        name int REFERENCES Place,
        time REFERENCES TimeSlot,
    
        PRIMARY KEY (sin, method, name, time)
    
        -- Other fields and constraints...
    
    );
    

    注意:我会考虑将代理键引入父/强实体,只是为了使弱实体的键更精简(例如,引入 PlaceId 并从 Recon 引用 it 而不是自然键name)。


    1事实上,每个实体只能有一个主键,尽管理论上你可以有多个备用键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-30
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多