gpt4 book ai didi

database - 跟进【删除(级联/限制)】和更新(级联/限制)

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:08 27 4
gpt4 key购买 nike

我想知道何时实际使用删除级联或删除限制以及更新级联或更新限制。我对使用它们或在我的数据库中应用感到很困惑。

最佳答案

在外键约束上使用级联运算符是一个热门话题。

理论上,如果您知道删除父对象也将自动删除其所有子对象这一事实,那么在子表和父表之间的链接上进行级联删除可能是有意义的。

想象一个由“零件”组成的“机器”。如果您的逻辑是如果机器被删除,构成该机器的所有零件也将从数据库中清除,那么您可以在零件表和机器表之间的外键链接上使用级联删除选项。

但是:这可能有点棘手,尤其是当您最终拥有与此选项链接的整个表链时。因此,很多开发人员倾向于在自己的数据访问代码中处理它,而不是在数据库中定义它。

更新级联通常在父表上的主键更改时使用 - 为了更新所有相关的子表和行以反射(reflect)该更改。这通常被认为是数据库代码异味——这里更好的选择是确保主键永远不会改变,这样就永远不需要这种级联更新——例如通过在您的表中引入一个人工的“代理”键列,该列与业务无关,因此永远不会更新。

这有帮助吗?您对任何具体细节仍不清楚?

我的看法是:虽然这在理论上是个好主意,但大多数开发人员并没有真正在“现实生活”中使用它 - 大多数开发人员会选择在数据访问代码中处理它,这给了他们完全和明确的控制权删除(或更新)的内容。

关于database - 跟进【删除(级联/限制)】和更新(级联/限制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3798288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com