天道酬勤,学无止境

hard-delete

物理记录还是逻辑记录(硬对软)删除数据库记录?(Physical vs. logical (hard vs. soft) delete of database record?)

问题 与实际或物理删除记录相比,对记录进行逻辑/软删除(即设置一个标志,说明已删除记录)有什么好处? 这是惯例吗? 这样安全吗? 回答1 优点是您可以保留历史记录(便于审核),而不必担心通过引用数据库中要删除的行的各种其他表来级联删除操作。 缺点是您必须对任何报告/显示方法进行编码以考虑该标记。 就一种常见的做法而言,我会说是的,但是对于任何情况,是否使用它取决于您的业务需求。 编辑:想到另一个缺点-如果表上有唯一索引,则删除的记录仍将占据“一个”记录,因此您也必须围绕这种可能性进行编码(例如,具有唯一索引的User表用户名;已删除的记录仍会阻止新记录的已删除用户的用户名。要解决此问题,您可以在GUID上添加已删除的用户名列,但这是我不建议的非常棘手的解决方法。最好有一条规则,即一旦使用了用户名,就永远不能替换它。) 回答2 逻辑删除是惯例吗? 是的,我在很多地方都看到了这一点。 他们安全吗? 这真的取决于它们是否比数据在删除之前安全性低? 当我担任技术主管时,我要求我们的团队保留每一个数据,当时我知道我们将使用所有数据来构建各种BI应用程序,尽管当时我们不知道需求会是什么。是。 从审核,故障排除和报告的角度来看,这很好(这是一个用于B2B交易的电子商务/工具网站,并且如果有人使用了该工具,即使后来他们的帐户被关闭,我们也要记录下来),它确实有几个缺点。 不利之处包括

2021-04-15 09:43:57    分类:技术分享    sql   database   database-design   soft-delete   hard-delete

Physical vs. logical (hard vs. soft) delete of database record?

What is the advantage of doing a logical/soft delete of a record (i.e. setting a flag stating that the record is deleted) as opposed to actually or physically deleting the record? Is this common practice? Is this secure?

2021-03-24 19:59:46    分类:问答    sql   database   database-design   soft-delete   hard-delete