Database design 嵌套数据的关系模型

Database design 嵌套数据的关系模型,database-design,relational-database,entity-relationship,Database Design,Relational Database,Entity Relationship,我应该如何在关系数据库中为以下内容设置实体(表): “每个实验有一个菌株。菌株可以有许多实验。每个菌株都有一个母体菌株,它是一个或多个其他菌株的组合。” 特别是我正在努力研究如何将父菌株分配给菌株 例如: 应变99是一种应变,其母体应变通常为应变98(但也可以是应变96、应变197的组合)。 我应该如何设计表格和关系,使每个菌株都有一个父菌株 谢谢。这是一种多对多关系。“ParentStrain”似乎与“Strain”有所不同——它自己的实体。这是一组菌株。这表明: create table p

我应该如何在关系数据库中为以下内容设置实体(表): “每个实验有一个菌株。菌株可以有许多实验。每个菌株都有一个母体菌株,它是一个或多个其他菌株的组合。”

特别是我正在努力研究如何将父菌株分配给菌株

例如: 应变99是一种应变,其母体应变通常为应变98(但也可以是应变96、应变197的组合)。 我应该如何设计表格和关系,使每个菌株都有一个父菌株


谢谢。

这是一种多对多关系。“ParentStrain”似乎与“Strain”有所不同——它自己的实体。这是一组菌株。这表明:

create table parentstrains (
    parentstrainid int generated always as identity primary key
);

create table parentstrainstrains (
    parentstrainstrainid int generated always as identity primary key,
    parentstrainid int not null references parentstrains(parentstrainid),
    strainid int not null references strains(strainid)
);
然后:

alter table strains add constraint fk_strains_parentstrains
    foreign key (parentstrainid) references parentstrains(parentstrainid);