【发布时间】:2010-01-03 13:31:05
【问题描述】:
我有一个论坛,我允许用户删除他们的帐户。
我希望用户线程仍然存在并显示用户名,但我想知道一件事。
如果一个用户被删除(基本上我只是在表格行中将他们的用户名和密码设为 NULL,但我将其他所有内容保持不变)并且另一个用户正在注册相同的用户名,那么人们会相信具有相同用户名的新用户拥有创建了前一个用户创建的所有线程。
还是不允许新用户选择那些已删除的用户名是例行公事?
关于删除用户的最佳做法是什么?
【问题讨论】:
我有一个论坛,我允许用户删除他们的帐户。
我希望用户线程仍然存在并显示用户名,但我想知道一件事。
如果一个用户被删除(基本上我只是在表格行中将他们的用户名和密码设为 NULL,但我将其他所有内容保持不变)并且另一个用户正在注册相同的用户名,那么人们会相信具有相同用户名的新用户拥有创建了前一个用户创建的所有线程。
还是不允许新用户选择那些已删除的用户名是例行公事?
关于删除用户的最佳做法是什么?
【问题讨论】:
在您的用户表中添加一个额外的列,称为“已删除”或类似名称。默认为零(假)。当用户被“删除”时,将此字段设置为 1(真)。这样一来,您就不会遇到用户名重复的问题,因为原始用户名仍然存在并链接到您现有的帖子等。
【讨论】:
我会在表中保留一个 deleted 字段作为布尔值。当用户离开时将其设置为 true。保持用户名的唯一性。
【讨论】:
添加 DeletedDate 列。如果此列为 NULL,则不会删除用户帐户。
这样您不会删除任何数据,如果您愿意,您可以稍后取消删除帐户,用户名等保持不变。
【讨论】:
您实际上不应该删除用户,只需在他们在数据库中的记录上设置一个“已删除”标志。 如果设置了这样的标志,则不允许用户登录。另外,显示用户页面,上面有“用户已删除”。 如果你真的删除了一条记录,你将不得不决定如何处理
所以,这实际上会改变人们的对话。
【讨论】:
如果允许其他人使用旧用户名很重要,您可以将用户名更改为例如。已删除用户 X - 这样用户的帖子之间仍会有联系(这在某些情况下可能很重要)。
【讨论】:
如果您保留帖子和用户名,您不希望人们再次注册相同的用户名。会引起很多混乱。通常,您还将用户名设置为用户表的唯一键。
如果没有相关的帖子或其他活动,我建议让用户完全删除他们的帐户。如果有关联的帖子,则该帐户被禁用,并且帖子标记为“已删除用户”。
然后将其完全清除帐户和相关帖子作为管理操作。这可以添加到您的常规维护工具中。
【讨论】:
您甚至可以在 users 表中添加一个名为“uid”的额外列,并为每个注册的新用户生成新的 uid。
【讨论】:
帖子应该通过 ID 而不是用户名链接到用户,因此除非您不应该重复使用 ID,否则您不会遇到此问题。
【讨论】: