对包含2列主键的表的外键引用

时间:2012-05-11 13:58:27

标签: sql oracle

您是否可以在SQL中使用2列主键将外键设置为另一个,只引用其中一个主键列Oracle?

2 个答案:

答案 0 :(得分:1)

PK-FK关系的规则表明,列中的数据必须相等,数据类型也应相同。

答案 1 :(得分:1)

外键必须引用整个主键或其他唯一约束。如果父表需要两列来唯一标识记录,则其依赖项必须在其结构中包含两列。

通过使用代理或合成主键(通常使用序列生成)来避免复合外键的增殖是很常见的。外键引用单列代理键。

仍应在具有唯一约束的父表中强制执行复合业务键。

有时复合主键包含一个也是唯一的列。例如,这是一种强制弧的方式,(超类型和子类型的重新关联)。因此,PERSONS表将(PERSON_ID)作为主键,并将(PERSON_ID,PERSON_TYPE)作为唯一键。在这种情况下,依赖表可能会引用(PERSON_ID)或(PERSON_ID,PERSON_TYPE),具体取决于特定关系。