我不确定如何创建一对多关系,但将多个项目限制为每个唯一主键的“设置”。
DB:Oracle 11g
示例:
PK表:
CUST(PK)
100
200
有效的FK表数据:
CUST(FK) | ITEM
100 | 101
100 | 102
200 | 101
200 | 102
无效的FK表数据:
CUST(FK) | ITEM
100 | 101
100 | 101
200 | 104
200 | 104
有关如何建立这种关系的任何建议吗?我想限制唯一性,因此无法向FK表添加违反上述“设置”唯一性的值。
这可以完全在Oracle DB端完成,还是必须通过访问Java代码来强制执行此操作?
答案 0 :(得分:1)
只需创建一个包含两列的unique constraint:CUST和ITEM,类似于:
ALTER TABLE secondtable
ADD CONSTRAINT custItem UNIQUE (CUST, ITEM)
除了您的外键
之外,还要创建此约束答案 1 :(得分:1)
这可能会帮助你......按照以下方式创建你的表....
create table cust_id
(cus_id number primary key)
tablespace ts1;
create table Valid_FK_Tabl
(cus_id number,item number,constraints pk1 primary key(cus_id,item))
tablespace ts1 ;
alter table Valid_FK_Tabl
add constraints fk1 foreign key(cus_id)
references schema2.cust_id(cus_id);