首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数据库中删除记录,还是在读取过程中简单地隐藏它们?

从数据库中删除记录,还是在读取过程中简单地隐藏它们?
EN

Stack Overflow用户
提问于 2013-02-27 15:40:53
回答 3查看 3.5K关注 0票数 4

我想知道是否有人可以提供各种理据/解决方案来知道何时从数据库中删除记录,而不是通过字段值(例如is_hidden=1 )在读取操作期间简单地隐藏它们。

我的应用程序是一个社交网络/电子商务网络应用程序。我倾向于支持is_hidden策略,但随着站点的增长,我可以看到这导致了一个非常糟糕的网站。

这是我的名单。名单上有哪些东西我遗漏了?清单的优先顺序好吗?

Delete

  1. 基本原理:缩小表大小/提高数据库性能
  2. 基本原理:如果要创建的数据非常简单,那么就很有用。
  3. 解决方案: SQL DELETE

is_hidden

  1. 基本原理:允许用户/DBA恢复数据/对敏感和硬CREATE数据有用
  2. 基本原理:如果必要的话,以后可以DELETE吗?
  3. 解决方案: SQL SELECT ... WHERE is_hidden!=1

有什么想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-28 04:21:33

您可能希望进行软删除的主要原因是审计跟踪需要它。例如,我们可能有一个发票表和一个空列,而且我们通常只是省略无效的发票。这保留了审计线索,因此我们知道哪些发票被输入,哪些发票被作废。

由于这个原因,许多领域(特别是金融领域)都倾向于使用软删除。通常,与数据集相比,删除的数量很小,而且您不想真正删除,因为实际上这样做可能会让人为盗窃金钱或真实世界的商品提供掩护。然后,可以为需要“删除”数据的查询显示“已删除”数据。

一个很好的非db的例子是:“在你的总日记账或总分类账上写字时,用笔写,如果你马上发现错误,用一行划掉,这样原始数据仍然清晰,并在下面写正确的值。如果你后来发现了,要么写一个调整条目,要么写一个反转和一个新的。”在这种情况下,您的主要原因是查看何时更改了哪些内容,以便在有问题时可以对这些更改进行审计。

通常需要查看此类信息的人可能是财务或其他审计人员。

票数 4
EN

Stack Overflow用户

发布于 2013-02-27 15:55:14

在你的问题中,你已经说了所有的话:

删除将完全删除条目和

is_hidden=1会把它藏起来。

因此:如果将来可能需要这些数据,那么应该使用隐藏方法。如果您确信数据再也不会被使用,请使用delete。

关于性能的

您可以使用两个表:

  • 1用于有形物品
  • 1代表隐藏的

甚至三张桌子:

  • 1表示可见
  • 1%用于隐藏
  • 作为一个存档文件,您可以移动所有超过3年的隐藏数据或其他

或者:

  • 1表示可见的和隐藏的(使用is_hidden标志)
  • 1作为旧条目的存档

一切都看你的了。但是如果你看看facebook或google:他们永远不会删除任何东西!数据== Money == Power ;)

票数 3
EN

Stack Overflow用户

发布于 2013-02-28 04:41:39

就性能和开发的容易程度而言,在您的平台上可能有过滤索引、索引视图等,这意味着将软删除的数据保存在身边对您的系统几乎没有什么影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15116146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档