因此,您拥有一个关系数据库,并为参考完整性定义了一些外键。但现在,利用它们的更好方法是什么?假设我们要删除表中包含其他表的外键的行。
将它们用作垃圾收集器 - 将所有约束设置为级联。因此,在应用程序中,首先检查目标行是否有任何“子”,并向用户提供中止删除操作的选项,如果不希望删除相关行。
将它们用作实际的约束 - 在您的应用程序中,只需尝试删除目标行。如果操作失败,则然后检查它是否有子项并向用户显示选项;如果用户想要继续操作,请先手动删除依赖行。
第二个选项使得删除循环引用相当艰巨 - 您甚至可以在删除任何内容之前将外键设置为null。
答案 0 :(得分:1)
有两种典型的外键情景:
我只在组合的情况下级联,并单独处理每个关联案例。