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