在具有公平份额的用户生成内容的网站上,例如论坛帖子,博客评论,提交的文章,私人和公共信息,用户个人资料等;如果用户终止其帐户,那么就用户生成的数据做什么而言,最佳做法是什么?
我不是在问法律建议,我不认为这是一个法律问题,而是在用户,其他用户和网站之间取得平衡的问题,因为在此之后可以制定使用条款平衡受到打击。当用户删除其帐户时,应考虑以下某些方案:
我正在问这个问题,因为我正在将用户帐户实施到CMS中。我知道Facebook最近因其使用条款的变化而遇到trouble,但您如何平衡删除的愿望与其他参与者的需求和投资?
答案 0 :(得分:20)
一般来说,对于数据库,您很少删除任何内容。您可以将其标记为已删除,但一般来说,您至少会将其保留在数据库中一段时间。
这有很多原因。其中一些是合法的。您可能要求保留给定时期的数据。其中一些是技术性的。有时它只是一个保障。您可能需要恢复信息。用户可能会要求重新打开帐户,或者由于发送垃圾邮件而被锁定,但这是因为该帐户已遭到入侵并且现已恢复。
旧数据可能会被删除或存档,但这可能需要数月甚至数年。
就个人而言,我只是给相关数据一个状态栏(例如1 =有效,0 =删除),然后只改变状态而不是99%的时间删除它。
数据完整性是另一个问题。我举个例子。
假设您有两个实体:
User: id, nick, name, email
Message: id, sender_id, receiver_id, subject, body
您想要删除特定用户。您如何处理他们发送和接收的邮件?这些消息将显示在其他人的收件箱或已发送的项目中,因此您无法删除它们。您是否将Message中的相关字段设置为NULL?这不是很有意义,因为这个消息确实来自(或去)某人,即使他们不再活跃。
最好将该用户标记为已删除并保留它们。它使这种情况和类似情况更容易处理。
您还提到论坛帖子等等。您也不能删除这些内容(除非有其他原因,例如垃圾邮件或滥用行为),因为它们是与其他内容相关的内容(例如已回复的论坛消息)。
您可以安全合理地删除的唯一数据是子数据。这实际上是聚合和组合之间的区别。上面的用户和消息关系是聚合。组合的一个例子是House和Room。你删除了一个房子,所有房间都去了。没有房子,房间不可能存在。这是组合,或者在实体关系方面,是父子关系。
但是你会发现更多的聚合实例而不是合成(根据我的经验),所以问题就变成了:你如何处理这些数据?在没有删除你不应该删除的东西的情况下,很难抹去所有人的痕迹。只需将它们标记为已删除,已锁定或处于非活动状态,并以此方式处理。
答案 1 :(得分:1)
您可以将用户标记为已删除,然后每当您显示涉及该用户的任何内容时,您都会将该名称显示为“前用户”或其他内容。
这可以在不破坏您的内容的情况下保护已离职的用户身份。
答案 2 :(得分:1)
您应该保留所有内容并将用户标记为已删除,以便其他用户无法看到他或她的个人资料,用户名等。然后其他用户应该能够使用相同的名称注册(因为它应该成为免费)。
答案 3 :(得分:1)
我一直在考虑这些相同的问题。老实说,如果其他人贡献了他们的时间和精力,你不应该删除用户要删除的线程。我记得在一个论坛上有一条规则,你发布后的11个小时后就无法删除你的帖子。我想这背后的想法是,在你发表声明后,你不能回信。
因此,更好的锁定帐户,但不会级联删除与用户相关的任何内容。
特别是,他们可以删除他们的帐户,然后以相同的名称注册并重新开始。