应如何在关系数据库中为以下对象设置实体(表):
“每个实验都有一个应变。一个应变可以有多个实验。每个应变都有一个父应变,它是一个或多个其他菌株的组合。”
< p>尤其是我在如何将父级应变分配给该应变方面感到很困难。
示例: 菌株99是菌株,其亲代菌株通常是菌株98(但也可以是菌株96,菌株197的组合)。 我应该如何设计表和关系,以便每个应变都具有一个父应变?
谢谢。
答案 0 :(得分:0)
这是一个多对多的关系。 “ 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);