使用相互依赖的外键有什么缺点?
What are the disadvantages when I use mutually dependent foreign keys?
我知道用两个table互用外键定义不是一个好方法,但我不明白数据库中出现的困难。
举个例子:我有一个 table 城市和一个 table 州。 City.city 指向 state.capitalcity,state.state 指向 city.state。
如果有任何帮助,我将不胜感激。
没关系。当键是 NOT NULL
时,问题就出现了。那样的话,
- 您不能插入新的
state
,因为 capitalcity
需要存在。
- 您不能插入
capitalcity
,因为状态需要存在。
糟糕!这使得加载 any 数据有点困难。
当然,您可以通过删除或延迟外键约束来解决这个问题。
如果其中一个或任何一个 NULL
可用,则您不会遇到此问题 -- 例如 capitalcity
.
我知道用两个table互用外键定义不是一个好方法,但我不明白数据库中出现的困难。 举个例子:我有一个 table 城市和一个 table 州。 City.city 指向 state.capitalcity,state.state 指向 city.state。 如果有任何帮助,我将不胜感激。
没关系。当键是 NOT NULL
时,问题就出现了。那样的话,
- 您不能插入新的
state
,因为capitalcity
需要存在。 - 您不能插入
capitalcity
,因为状态需要存在。
糟糕!这使得加载 any 数据有点困难。
当然,您可以通过删除或延迟外键约束来解决这个问题。
如果其中一个或任何一个 NULL
可用,则您不会遇到此问题 -- 例如 capitalcity
.