软删除最佳做法(PHP / MySQL)
在处理产品和订单的Web应用程序中,我想维护前雇员(用户)与其处理的订单之间的信息和关系。我想维护过时产品与包括这些产品的订单之间的信息和关系。
但是我希望员工能够整理管理界面,例如删除前员工,过时的产品,过时的产品组等。
我正在考虑实施软删除。那么,通常如何做到这一点?
我的第一个想法是flag_softdeleted
在应该可以软删除的每个对象表中粘贴“ TINYINT NOT NULL DEFAULT
0”列。或者使用时间戳代替?
然后,在每个相关的GUI中提供一个“显示已删除”或“取消删除”按钮。单击此按钮,您将在结果中包括软删除的记录。每个删除的记录都有一个“还原”按钮。这有意义吗?
你的想法?
另外,我希望与相关资源建立任何链接。
回答:
这就是我的方法。我有一个is_deleted
默认为0 的字段WHERE is_deleted = 0
。然后查询仅检查。
我尽量避免任何硬删除。有时它们是必需的,但是我将其设为仅管理员使用的功能。这样我们就可以硬删除,但用户不能…
实际上,您可以使用它在您的应用程序中具有多个“软删除”“层”。所以每个可能是一个代码:
0
->未删除1
->软删除,在管理用户的已删除项目列表中显示2
->软删除,除管理员用户外不显示任何其他用户3
->仅显示给开发人员。
如果其他两个级别过长,仍然可以使经理和管理员清理已删除列表。而且由于前端代码只检查is_deleted = 0
,因此对前端是透明的…
以上是 软删除最佳做法(PHP / MySQL) 的全部内容, 来源链接: utcz.com/qa/406849.html