一对多独特的“设置”oracle db

时间:2013-03-06 01:21:15

标签: oracle11g foreign-keys primary-key foreign-key-relationship unique-constraint

我不确定如何创建一对多关系,但将多个项目限制为每个唯一主键的“设置”。

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代码来强制执行此操作?

2 个答案:

答案 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);