关系数据库外键约束在实践中的使用

时间:2010-10-26 08:05:56

标签: foreign-keys relational-database

因此,您拥有一个关系数据库,并为参考完整性定义了一些外键。但现在,利用它们的更好方法是什么?假设我们要删除表中包含其他表的外键的行。

  1. 将它们用作垃圾收集器 - 将所有约束设置为级联。因此,在应用程序中,首先检查目标行是否有任何“子”,并向用户提供中止删除操作的选项,如果不希望删除相关行。

  2. 将它们用作实际的约束 - 在您的应用程序中,只需尝试删除目标行。如果操作失败,则然后检查它是否有子项并向用户显示选项;如果用户想要继续操作,请先手动删除依赖行。

  3. 第二个选项使得删除循环引用相当艰巨 - 您甚至可以在删除任何内容之前将外键设置为null。

1 个答案:

答案 0 :(得分:1)

有两种典型的外键情景:

  • 关联:链接2个可以自己存在的实体
  • 组合:将子实体链接到其父实体(子实体在没有父实体的情况下存在,例如:订单和订单项)

我只在组合的情况下级联,并单独处理每个关联案例。