在SQL中,您是否可以将一个表中的外键设置为另一个主键,其中2列主键仅引用其中一个主键列Oracle?
发布于 2012-05-11 22:54:39
外键必须引用整个主键或其他唯一约束。如果父表需要两列来唯一标识一条记录,那么它的从属表必须在其结构中同时包含这两列。
通过使用代理或合成主键(通常是用序列生成的)来避免复合外键的扩散是很常见的。外键引用单列代理键。
复合业务键仍应使用唯一约束在父表中强制执行。
有时,复合主键包含的列也是唯一的。例如,这是一种强制执行圆弧的方式(超类型和子类型关系)。因此,PERSONS表将(PERSON_ID)作为主键,(PERSON_ID,PERSON_TYPE)作为唯一键。在这种情况下,依赖表可能引用(PERSON_ID)或(PERSON_ID,PERSON_TYPE),这取决于特定的关系。
发布于 2012-05-11 22:07:06
PK-FK关系规则要求列的个数必须相等,数据类型也必须相同。
https://stackoverflow.com/questions/10552821
复制相似问题