我有这两个(简化来说明问题)表:
create table CASE_INSTANCE (id int not null, stage_id int not null,
primary key (id, stage_id));
create table SAMPLE (id int not null, case_id int not null);
我想在SAMPLE上添加约束,以便CASE_ID必须是CASE_INSTANCE.ID的有效值。但是,我无法使用外键执行此操作,因为CASE_INSTANCE.ID不是唯一的。如何向SAMPLE添加约束以强制执行此关系?
这适用于DB2。
答案 0 :(得分:1)
添加另一个case_id
唯一的表格,然后从CASE_INSTANCE
和SAMPLE
引用它。
答案 1 :(得分:0)
如果您不愿意更改模型,我担心您必须使用触发器或应用程序强制执行此操作。但是,如果某些内容取决于案例而不是案例实例,则它应该是该案例的子项,而不是案例实例。如果您没有表格ID唯一的表格,我会说您的模型有问题。