我需要一个简短的答案,如何制定约束时 我有表A,B,C,E
其中id是主键。
我想约束确保我表A我有C_ID和B_ID具有相同E_ID的记录。 并且它应该仍然具有第三范式。
答案 0 :(得分:0)
您需要以下四个限制:
alter table a add constraint fk1 foreign key (b_id) references b (b_id);
alter table a add constraint fk2 foreign key (c_id) references c (c_id);
alter table c add constraint fk3 foreign key (e_id) references e (e_id);
alter table b add constraint fk4 foreign key (e_id) references e (e_id);
答案 1 :(得分:0)
一种方法是在表e_id
中重复a
,然后将其用于外键约束。
请注意此数据模型中唯一键的外键关系:
create table e (eid int primary key);
create table b (bid int primary key,
eid int references e(eid),
unique (bid, eid)
);
create table c (cid int primary key,
eid int references e(eid),
unique (cid, eid)
);
create table a (aid int primary key,
bid int references b(bid),
cid int references c(cid),
eid int references e(eid),
foreign key (bid, eid) references b(bid, eid),
foreign key (cid, eid) references c(cid, eid)
);
Here是一个SQL小提琴。