gpt4 book ai didi

php - 软删除最佳实践 (PHP/MySQL)

转载 作者:IT老高 更新时间:2023-10-28 23:45:55 24 4
gpt4 key购买 nike

问题

在处理产品和订单的 Web 应用程序中,我想维护前雇员(用户)与他们处理的订单之间的信息和关系。我想维护过时产品和包含这些产品的订单之间的信息和关系。

但是我希望员工能够整理管理界面,例如删除前员工、过时的产品、过时的产品组等。

我正在考虑实现软删除。那么,通常是如何做到这一点的呢?

我的直接想法

我的第一个想法是在每个应该可软删除的对象表中粘贴一个“flag_softdeleted TINYINT NOT NULL DEFAULT 0”列。或者也许改用时间戳?

然后,我在每个相关的 GUI 中提供一个“显示已删除”或“取消删除”按钮。单击此按钮,您将在结果中包含软删除的记录。每条删除的记录都有一个“恢复”按钮。这有意义吗?

你的想法?

另外,如果有任何相关资源的链接,我将不胜感激。

最佳答案

我就是这样做的。我有一个默认为 0 的 is_deleted 字段。然后查询只需检查 WHERE is_deleted = 0

我尽量远离任何硬删除。它们有时是必要的,但我将其设为仅限管理员使用的功能。这样我们可以硬删除,但用户不能...

编辑:事实上,您可以使用它在您的应用程序中拥有多个“层”软删除。所以每个都可以是一个代码:

  • 0 -> 未删除
  • 1 -> 软删除,显示在管理用户的已删除项目列表中
  • 2 -> 软删除,除管理员用户外不显示给任何用户
  • 3 -> 只对开发者显示。

拥有其他 2 个级别仍然允许经理和管理员清理已删除的列表(如果它们太长)。而且由于前端代码只检查 is_deleted = 0,它对前端是透明的...

关于php - 软删除最佳实践 (PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020568/

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