【发布时间】:2011-04-30 14:55:07
【问题描述】:
所以你有一个关系数据库,你定义了一些外键来保证引用的完整性。但是现在,利用它们的更好方法是什么?假设我们要删除一个表中的一行,其中包含指向其他表的外键。
将它们用作垃圾收集器 - 将所有约束设置为级联。因此,在您的应用程序中,您首先检查目标行是否有任何“子行”,如果不希望同时删除相关行,则向用户提供中止删除操作的选项。 p>
将它们用作实际的约束 - 在您的应用程序中,只需尝试删除目标行。如果操作失败,然后检查它是否有子节点并将选项呈现给用户;如果用户想继续操作,请先手动删除依赖行。
第二个选项使删除循环引用变得相当困难 - 您必须先将外键设置为 null,然后才能删除任何内容。
【问题讨论】:
标签: foreign-keys relational-database