我在建模这个数据库时遇到了麻烦。基本上,我有三个实体,即A,B和C,这样:
一切都很好。但是,第5个要求使得这个设计变得毫无用处:相关的B和C元组必须与A的相同元组相关,即A_id1 = A_id2,总是。
我的问题是:如何修改我的设计以保证所有要求?
答案 0 :(得分:0)
这应该符合所有要求。
create table a(a_id number);
alter table a add constraint pk_a primary key(a_id);
create table b(a_id number, b_id number);
alter table b add constraint pk_b primary key(a_id, b_id);
alter table b add constraint fk_b_a foreign key(a_id) references a(a_id);
create table c(a_id number, c_id number);
alter table c add constraint pk_c primary key(a_id, c_id);
alter table c add constraint fk_c_a foreign key(a_id) references a(a_id);
create table bc(a_id number, b_id number, c_id number);
alter table bc add constraint pk_bc primary key(a_id, b_id, c_id);
alter table bc add constraint fk_bc_ab foreign key(a_id, b_id) references b(a_id, b_id);
alter table bc add constraint fk_bc_ac foreign key(a_id, c_id) references c(a_id, c_id);