使用相互依赖的外键有什么缺点?

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.