gpt4 book ai didi

c# - 非永久性地删除数据库记录(软删除)

转载 作者:太空狗 更新时间:2023-10-29 20:11:36 24 4
gpt4 key购买 nike

故事

我将编写一些代码来管理我的应用程序中已删除的项目,但我将软删除它们,以便在需要时将它们归还。在涉及隐藏或删除项目时,我的应用程序逻辑中有一个层次结构需要遵守。

我逻辑上将我的元素放在国家、城市、地区和品牌三个容器中。每件商品应属于一个国家、一个城市、一个地区和一个品牌。现在,如果我删除一个国家,它应该删除属于给定国家的城市、地区、品牌和项目。如果我删除了城市,它也应该删除它下面的所有内容(地区、品牌等)


注意事项

当我删除一个国家并删除相关品牌时,我应该注意一个品牌可能在多个国家有商品。


问题

你建议

  1. 将项目(无论是国家、城市、项目等)标记为已删除,这将需要大量代码来检查每次从数据库加载任何项目时是否已删除以及一些额外的字段来标记它所属的城市是否被删除,它所属的国家是否被删除等等。

  2. 将删除的内容分别移动到一个特定的表(DeletedCountries、Deleted Cities 等)并保存与之相关联的项目的 ID,以便我稍后可以将它们插入回原始表中。当然,这将为我的应用程序保存所有代码,这些代码将设法检查所有已删除的项目并确保删除所有层次结构。

  3. 也许您有更好的方法/建议/想法来实现这样的目标!

最佳答案

为了论证,解决方案 #2(将已删除的项目移到它们自己的表中)的一个优点是,如果您有大量记录,则不必担心根据“已删除”状态对记录进行索引。

话虽如此,如果我要将数据从一个表“移动”到另一个表(通过删除后插入),我会确保在 1 个事务中完成。

关于c# - 非永久性地删除数据库记录(软删除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5241071/

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