【问题标题】:What are the disadvantages when I use mutually dependent foreign keys?当我使用相互依赖的外键时有什么缺点?
【发布时间】:2020-05-12 22:20:54
【问题描述】:

我知道使用具有相互外键定义的两个表不是一个好方法,但是我不明白数据库中出现的困难。 一个例子:我有一个表格城市和一个表格状态。 City.city 指向 state.capitalcity,state.state 指向 city.state。 我会很感激任何帮助,谢谢。

【问题讨论】:

  • 你为什么不提供例子,然后我们可以拆开它
  • 在这里猜测一下,可能是一些循环逻辑,例如,您不能在不同时删除另一条记录的情况下从一个表中删除。其他 DML 和 DDL 语句也是如此。试一试,看看会发生什么。
  • 好的,谢谢!我试试看

标签: mysql sql database foreign-keys primary-key


【解决方案1】:

没关系。当密钥为NOT NULL 时,就会出现问题。在这种情况下,

  • 您不能插入新的state,因为capitalcity 需要存在。
  • 您不能插入capitalcity,因为该状态需要存在。

哎呀!这使得加载 any 数据有点困难。

当然,您可以通过删除或延迟外键约束来解决这个问题。

如果其中一个或任何一个是 NULLable,则不会出现此问题,例如 capitalcity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2011-04-09
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多