简而言之,我们有两个表:
文档 1(强实体)
文档 2(弱实体)
Document 1
有很多Document 2
,Document 2
只有一个Document 1
。
话虽如此,有时我们需要将 aDocument 2
插入数据库,但 aDocument 1
并不总是存在,这会导致外键错误。
如果我删除强制外键约束,添加 aDocument 2
并稍后关联它们,当我最终插入相应的时,是否可以Document 1
?
该协会是否仍会正式存在?
另外,这是否会在将来造成任何麻烦,例如存储过程或视图停止工作?
从技术上讲,这是可行的,但显然它破坏了两个表之间的数据完整性
Document 1
,Document 2
并且您的外键有助于强制执行您要么必须:
A) 预先将所有可能的记录/值添加到
Document 1
表中,因此当您在 中插入新行时Document 2
,值已经存在于Document 1
,并且没有违反外键或者
B)不要将值插入到中,这些值尚不
Document 2
存在Document 1
如果您无法实现上述任何一项(A 或 B) - 那么拥有外键有什么意义呢?