gpt4 book ai didi

mysql - 为数据库实体启用 "undelete"的最佳实践?

转载 作者:可可西里 更新时间:2023-11-01 07:41:57 25 4
gpt4 key购买 nike

这是针对使用 PHP/MySQL 的 CRM 应用程序。用户可以“删除”客户、联系人、备注等各种实体。与其实际从数据库中删除实体,我只是希望它在应用程序中看起来已被删除,但保留在数据库中,并在以后需要时能够“恢复”。甚至可以在应用程序中添加某种“回收站”。

我想到了几种方法来做到这一点:

  1. 将删除的实体移动到另一个表。 (客户到 customer_deleted)

  2. 更改实体的属性。 (启用为假)

我确信还有其他方法,并且每种方法对数据库大小、性能等都有自己的影响,我只是想知道通常推荐的方法是什么来做这样的事情?

最佳答案

我会结合两者:

  1. 将标志 deleted 设置为 true
  2. 一段时间后使用 cronjob 将条目移动到 ARCHIVE 类型的表格中
  3. 如果您需要恢复条目,选择文章表并从存档中删除

我为什么要走这条路?

  • 如果客户删除了错误的,可以立即恢复
  • 几周/一个月后,文章表可能会增长很多,所以我会存档所有删除的条目,每年 1 周。

关于mysql - 为数据库实体启用 "undelete"的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128130/

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