代码之家  ›  专栏  ›  技术社区  ›  Dejell

为什么在MySQL中使用外键约束?

  •  39
  • Dejell  · 技术社区  · 14 年前

    我在想,

    在MySQL中使用constraint作为外键的动机是什么,因为我确信我可以控制添加的类型?

    1 回复  |  直到 14 年前
        1
  •  67
  •   Daniel Vassallo    14 年前

    Foreign keys 执行 referential integrity . 这些约束保证表中的一行 order_details 带一个字段 order_id 引用 orders 桌子上永远不会有 订单号 中不存在的值 订单 桌子。

    MySQL's default storage 引擎不支持FKs),但它们对于避免断开关系和孤立行(即引用完整性)是绝对必要的。在数据库级别强制执行引用完整性的能力是 C级 在里面 ACID 站起来。

    至于您对性能的担忧,一般来说,会有性能成本,但可能可以忽略不计。我建议把所有的外键约束都放进去,只有当你有真正的性能问题而不能用其他方法解决时,才可以不用它们进行实验。