【发布时间】:2021-04-08 14:16:43
【问题描述】:
如果我有一个没有属性的弱实体,并且与所有者实体有四个弱关系,并且我想为这个弱实体设计关系模式,我可以获取与该弱实体有关系的所有强实体的主键吗?弱实体并将它们作为弱实体的主键? 我在下面添加一个示例,我的问题是关于“侦察”实体。
【问题讨论】:
标签: database database-design foreign-keys relational-database composite-primary-key
如果我有一个没有属性的弱实体,并且与所有者实体有四个弱关系,并且我想为这个弱实体设计关系模式,我可以获取与该弱实体有关系的所有强实体的主键吗?弱实体并将它们作为弱实体的主键? 我在下面添加一个示例,我的问题是关于“侦察”实体。
【问题讨论】:
标签: database database-design foreign-keys relational-database composite-primary-key
将相关强实体的主键迁移到弱实体的主键中。结果是一个(复合)主键,而不是多个主键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事实上,每个实体只能有一个主键,尽管理论上你可以有多个备用键。
【讨论】: