11

在拥有相当一部分用户生成内容的网站上,例如论坛主题、博客评论、提交的文章、私人和公共消息、用户资料等;如果用户终止其帐户,如何处理用户生成的数据的最佳做法是什么?

我不是在寻求法律建议,我也不认为这是一个法律问题,而是在用户、其他用户和网站之间取得平衡的问题,因为可以在达到平衡后制定使用条款. 当用户删除其帐户时,应考虑以下一些情况:

  • 用户之间的私人消息 - 是否应该删除对话线索?如果是这样,您如何解释需要法律证据的骚扰案件?
  • 论坛问题或答案 - 如果用户提出问题,是否应该删除整个线程?如果他们回答问题,是否应该删除答案?

我在将用户帐户实施到 CMS 时问这个问题。我知道 Facebook 最近在更改使用条款时遇到了麻烦,但是您如何平衡删除的愿望与其他参与其中的用户的需求和投资?

4

4 回答 4

22

一般来说,对于数据库,您很少删除任何内容。您可以将其标记为已删除,但一般来说,您至少会在数据库中保留一段时间。

这件事情是由很多原因导致的。其中一些是合法的。您可能需要在给定期间保留数据。其中一些是技术性的。有时它只是一种保障。您可能需要恢复信息。用户可能会要求重新打开他们的帐户,或者它可能由于垃圾邮件而被锁定,但那是因为该帐户已被盗用并且现在已经恢复。

旧数据可能会被删除或存档,但这可能需要几个月甚至几年的时间。

就我个人而言,我只是给相关数据一个状态列(例如 1 = 活动,0 = 已删除),然后在 99% 的时间里只更改状态而不是删除它。

数据完整性是这里的另一个问题。让我给你举个例子。

假设您有两个实体:

User: id, nick, name, email
Message: id, sender_id, receiver_id, subject, body

您要删除特定用户。您如何处理他们发送和接收的消息?这些消息将出现在其他人的收件箱或已发送的项目中,因此您无法删除它们。您是否将 Message 中的相关字段设置为 NULL?这也没有多大意义,因为该消息确实来自(或去往)某人,即使他们不再活跃。

您最好将该用户标记为已删除并保留它们。它使这种情况和类似情况更容易处理。

您还提到了论坛主题等。您也不能删除它们(除非有其他原因,例如垃圾邮件或滥用),因为它们是与其他内容相关的内容(例如已回复的论坛消息)。

您可以安全合理地删除的唯一数据是子数据。这确实是聚合和组合之间的区别。上面的用户和消息关系是聚合。组合的一个例子是房子和房间。你删除一个房子,所有的房间都去。没有房子,房间就不能存在。这是组合,或者,在实体关系术语中,是父子关系。

但是你会发现聚合的实例比组合的多(根据我的经验),所以问题就变成了:你如何处理这些数据?不删除不应该删除的东西,真的很难抹去某人的所有痕迹。只需将它们标记为已删除、锁定或非活动状态并以这种方式处理即可。

于 2009-03-28T23:12:04.153 回答
1

您可以将用户标记为已删除,然后每当您显示涉及该用户的任何内容时,您都会将名称显示为“前用户”或其他内容。

这可以保护已离开用户的身份,而不会破坏您的内容。

于 2009-03-28T23:19:23.027 回答
1

您应该保留所有内容并将用户标记为已删除,这样其他用户将无法看到他或她的个人资料、用户名等。然后另一个用户应该能够以相同的名称注册(因为它应该变得免费)。

于 2009-03-28T23:40:44.693 回答
1

很长一段时间以来,我一直在思考同样的问题。老实说,如果其他人为此付出了时间和精力,那么您不应该删除由要删除的用户发起的线程。我记得在一个论坛上有一条规则,在帖子发布 11 小时后,您不能删除您的帖子。我猜背后的想法是,在你发音之后你不能收回你的话。

因此,最好锁定帐户,但不要级联删除与用户相关的任何内容。

特别是,这样他们就可以删除他们的帐户,然后以相同的名称注册并重新开始。

于 2009-03-30T15:16:13.250 回答