重复:何时/为何在 SQL Server 中使用级联? https://stackoverflow.com/q/59297/1288
我一直不敢使用 DELETE CASCADE,但随着我变得更加自信(懒惰:D),我在想它有多糟糕,使用它是最佳实践还是我应该避免它并清理我的外键等老式方式(使用存储过程)?
ON DELETE CASCADE 没问题,但前提是依赖行确实是要删除的行的逻辑扩展。例如,DELETE ORDERS 可以删除关联的 ORDER_LINES,因为显然您想要删除此订单,它由标题和一些行组成。另一方面,DELETE CUSTOMER 不应删除关联的订单,因为订单本身很重要,它们不仅仅是客户的属性。
思考这个问题的一种方法是:如果我发出 DELETE X 并且它也删除了 Y,我会高兴还是不高兴?如果我发出 DELETE X 并被告知“无法删除 X,因为 Y 存在”,我会因为这种保护而感到高兴,还是会因为所带来的不便而感到恼火?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)