如果弱实体有多个强实体,它是否可以有多个主键?

问题描述

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

ER diagram(Recon entity)

解决方法

将相关强实体的主键迁移到弱实体的主键中。结果是一个(复合)主键,而不是多个主键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 并从 {{1} 引用 it } 而不是自然键 Recon).


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