user-accounts - 在用户帐户终止时删除数据的最佳做法

标签 user-accounts

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

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

  • 用户之间的私有(private)消息 -
    对话轨迹应该是
    删除?如果是这样,你如何记账
    对于合法的骚扰案件
    需要证据吗?
  • 论坛问题或答案 - 如果
    用户问了一个问题,应该
    整个线程被删除?如果他们
    回答一个问题,应该回答
    被删除?

  • 我在将用户帐户实现到 CMS 时问这个问题。我知道 Facebook 最近遇到了 trouble随着他们使用条款的变化,但您如何平衡删除的愿望与其他参与的用户的需求和投资?

    最佳答案

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

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

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

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

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

    假设您有两个实体:

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

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

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

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

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

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

    关于user-accounts - 在用户帐户终止时删除数据的最佳做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/693725/

    相关文章:

    c# - 获取 Windows Phone 用户帐户

    java - 使用 JNDI 和最小密码年龄在 AD 中创建用户帐户

    powershell - 我们可以不拥有域管理员的权限而访问具有特定权限的域中的所有服务器吗?

    php - mySQL/PHP - 如何将创建日期发布到新表条目?

    javascript - 在 Meteor 中验证用户密码

    docker - 新用户帐户 - 进入 docker 的权限被拒绝

    linux - 使用 cgroup 将每个客户群的 CPU 使用率限制为 25%

    node.js - 即使在重新启动后,也知道 Firebase 列表中添加了哪些新用户

    php - WooCommerce 登录区域重定向到默认的 Wordpress 登录表单

    authentication - 将客户端证书映射到用户帐户的最佳做法是什么?