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