Oracle11g “一对多独特”;“设置”;甲骨文数据库

Oracle11g “一对多独特”;“设置”;甲骨文数据库,oracle11g,foreign-keys,primary-key,foreign-key-relationship,unique-constraint,Oracle11g,Foreign Keys,Primary Key,Foreign Key Relationship,Unique Constraint,我不知道如何创建一对多关系,但将多个项限制为每个唯一主键的“集合” DB:Oracle 11g 例如: 主键表: CUST(PK) 100 200 CUST(FK) | ITEM 100 | 101 100 | 102 200 | 101 200 | 102 CUST(FK) | ITEM 100 | 101 100 | 101 200 | 104 200 | 104 有效的FK表格数据: CUST(PK) 100 200 CUST(FK) | ITEM 100 | 101 100 |

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

DB:Oracle 11g

例如:

主键表

CUST(PK)
100
200
CUST(FK) | ITEM
100 | 101
100 | 102
200 | 101
200 | 102
CUST(FK) | ITEM
100 | 101
100 | 101
200 | 104
200 | 104
有效的FK表格数据

CUST(PK)
100
200
CUST(FK) | ITEM
100 | 101
100 | 102
200 | 101
200 | 102
CUST(FK) | ITEM
100 | 101
100 | 101
200 | 104
200 | 104
无效的FK表数据

CUST(PK)
100
200
CUST(FK) | ITEM
100 | 101
100 | 102
200 | 101
200 | 102
CUST(FK) | ITEM
100 | 101
100 | 101
200 | 104
200 | 104
如何建立这样的关系有什么建议吗?我想限制唯一性,这样就不可能向FK表中添加违反上述“set”唯一性的值

这完全可以在Oracle DB端完成,还是必须通过访问Java代码来实现?

只需创建一个包含两列的数据库:CUST和ITEM,类似于:

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

除了外键之外,还创建此约束这可能有助于您..按以下方式创建表

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

成功了!很明显,我对数据库一无所知:)谢谢,这可以用来创建新表,但是因为我已经有了它们,所以我使用了cha的altertable方法。