0

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

数据库:甲骨文 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 代码中强制执行?

4

2 回答 2

1

只需创建一个包含两列的唯一约束:CUST 和 ITEM,类似于:

ALTER TABLE secondtable
ADD CONSTRAINT custItem UNIQUE (CUST, ITEM)

除了你的外键之外,创建这个约束

于 2013-03-06T04:31:07.260 回答
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);
于 2013-03-06T05:24:09.173 回答