我应该删除(SQL 和 DB)任何东西吗?

7 sql database

我很好奇,我应该删除任何东西吗?现在我正在建立一个网站(为我自己),它允许您订阅用户,然后每次用户上传内容时您都会收到一条消息。

或评论,如果有一个线程并且有人直接对您的评论发表评论,您会收到一条消息。我应该删除那些还是只是隐藏它?

每个订阅都有三个(64 位)int。id、commentId、recipientId。您可以通过 commentId 查看评论表,找出写信给您的人。如果我不使用删除,它将有第 4 个整数表示状态(显示、隐藏/删除)。

我应该离开它们还是删除它们?如果我应该删除它们,那为什么?我可以看到也许当有个人用户时,您必须根据要求删除,但除此之外我应该删除吗?

我不知道我将使用哪个 SQL DB。

-编辑-

谢谢你们。现在我不会删除任何东西,除了我可以生成的东西。比如那个订阅的事情。

Dav*_*ett 14

我工作的公司为某些受监管行业的人提供软件,所以通常我有“永不删除任何东西”的态度,因为如果你删除任何东西,你就会失去审计跟踪的完整性。而是将信息标记为已删除(或将其移动到表格的存档版本)并记录谁“删除”了它以及何时“删除”了它。

真正删除东西的唯一原因是

  • 如果您的空间不足(但现在磁盘很便宜)
  • 为了效率(但如果您的数据结构索引良好且碎片化程度不高,这将没有什么区别)
  • 出于法律原因(如果您被要求删除某人的详细信息,您很可能必须遵守,具体取决于当地的数据保护法律,或者内容本身是否违反了某些法律)

您的用户可能会庆幸没有真正删除任何内容,如果他们不小心删除了一些有用的内容并且您可以将其取回。如果之前向网站提供有价值信息的心烦意乱的用户发出嘶嘶声并删除所有帖子以进行报复,您可以轻松撤回删除操作。

一个额外的非常重要的一点:你应该在你的服务条款中明确当用户看不到信息时可能不会真正删除它,并提供一条路线(如果只是“发送电子邮件给 x@xx 并要求它完成”),以便他们真正删除他们根据相关法律有权要求删除的数据。

  • 如果状态(已删除,未删除)很少更改,为了获得更好的性能,您可以根据此值对表进行分区。 (2认同)

Guy*_*Guy 6

通常情况下,今天的现代磁盘大小和IO性能意味着你不具备删除记录,以节省空间或维护性能。通常,记录上的“记录已删除”字段可以使用审计跟踪将记录标记为已删除(或其他状态)。

出于监管原因,某些行业要求您永远不要删除“交易”数据。您已经知道是否需要这样做。如果有任何付款信息,您通常需要将数据保留(或提供数据)7 年(英国会计法)。

出于其他目的,实际上有充分的理由物理删除数据。

如果它不存在,则无法发现。

《信息自由法》(英国)规定,如果数据是可发现的,那么它就包含在任何搜索的范围内。这包括“软删除”记录和历史备份。

对于某些系统,我们确保在“这么多”个月后清除旧记录并重新使用/销毁旧备份磁带/文件,以确保它不可用于 FOI 请求。(处理一个可以追溯到几年前并且需要从存档备份中恢复数百个旧邮箱的 FOI 请求的成本非常高)。

这与 OPERATIONAL 备份不同。我们保留备份,以便在发生灾难时进行恢复。我们还有一个必须保留的纸质和电子媒体的“记录商店”,我们将电子邮件等复制到该商店。

  • 此外,《数据保护法》(同样是英国)要求数据的保存时间不得超过必要时间,如果与个人信息有关的记录被标记为已删除而不是已删除,则该记录将被保留,并且根据定义不再需要所以应该删除。 (2认同)