【问题标题】:How safe is to set relationships to delete on cascade?在级联上设置要删除的关系有多安全?
【发布时间】:2010-11-08 09:50:42
【问题描述】:

我在 mysql 上有这个大数据库(104 个表),其中几乎每个表都有一个指向单个表的 FK,比如主表。

有一个庞大的关系网络,当我需要从“主”表中删除一条记录时,显然,由于关系而出现了很多错误。所有这些在删除时都设置为“什么都不做”,所以我的问题是,真的,将它们(关系)更改为级联删除而不是“手动”删除所有受影响表上的每条记录有多安全?

我正在使用最新版本的 MySql(不记得具体是哪一个),如果可以使用的话,还有 PHP 5.2 和 codeigniter。

非常感谢

【问题讨论】:

  • 安全,从客户的角度来看。一个小错误可能导致大量数据丢失。但是,这个项目的客户/客户无论如何都不应该接触数据库

标签: mysql foreign-key-relationship relationships


【解决方案1】:

一切都与商业规则有关。

如果在您的业务规则中应该发生级联删除,我不明白您为什么要手动编程?

当然,在手动编程时,您可以内置额外的验证,但如果您不这样做,手动删除只会使细化更容易出错。

一方面,删除 'by built in cascade' 时,事务是免费的,您不会冒留下孤儿的风险。

【讨论】:

  • 一些和我一起工作的人指出我在这种情况下并不那么安全,例如,客户端接触数据库。但我告诉他们,无论如何客户都不应该这样做
  • 编程时也会发生巨大的数据丢失,不是吗?无论哪种方式都可以要求确认。
猜你喜欢
  • 2021-09-24
  • 2016-04-11
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 2021-07-13
相关资源
最近更新 更多