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

Database 如果弱实体有多个强实体,它是否可以有多个主键?,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,

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


将相关强实体的主键迁移到弱实体的主键。结果是一个(复合)主键,而不是多个主键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...

);

注意:我会考虑将代理键引入父/强实体中,简单地使弱实体的密钥更简洁(例如引入代码> PosiID并引用它从代码> ReCON<代码>而不是自然密钥<代码>名称<代码> >


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