删除用户最佳做法?

问题描述 投票:4回答:8

我有一个论坛,我允许用户删除他们的帐户。

我希望用户线程仍然存在并显示用户名,但我想知道一件事。

如果一个用户被删除(基本上我只是在表格行中使用他们的用户名和密码,但我保留其他所有内容)而另一个用户正在注册相同的用户名,那么人们会认为具有相同用户名的新用户创建了所有上一个用户创建的线程。

或者不允许新用户选择那些已被删除的用户名?

删除用户的最佳做法是什么?

php mysql
8个回答
10
投票

在users表中添加一个额外的列,称为“已删除”或类似。 将此默认为零(false)。 当用户被“删除”时,将此字段设置为1(true)。 这样,您就不会遇到有重复用户名的用户的任何问题,因为原始文件仍然存在并链接到您现有的帖子等。


3
投票

我会在表中保留一个deleted字段作为布尔值。 用户离开时将其设置为true。 保持用户名唯一。


1
投票

添加DeletedDate列。 如果此列为NULL,则不会删除用户帐户。

这样您就不会删除任何数据,如果您愿意,可以在以后取消删除帐户,用户名等等。


1
投票

您不应该实际删除用户,只需在其数据库中的记录上设置“已删除”标志。 如果设置了此标志,则不允许用户登录。另外,在其上显示“用户已删除”的用户页面。 如果您实际删除了记录,则必须决定如何处理

  • 论坛帖子用户一直在创作
  • 用户做出的回复
  • 回复有人提到删除的用户所说的内容
  • 发送给该用户的私人消息

所以,这实际上会改变人们的谈话。


1
投票

如果让其他人使用旧用户名很重要,您可以将用户名更改为例如。 删除了用户X - 这样,用户的帖子之间仍然存在连接(在某些情况下这可能很重要)。


1
投票

如果您保留帖子和用户名,则不希望他们再次注册相同的用户名。 这会引起很多困惑。 通常,您还可以将用户名设置为用户表的唯一键。

如果没有关联的帖子或其他活动,我建议让用户完全删除他们的帐户。 如果存在关联的帖子,则会禁用该帐户,并将帖子标记为“已删除的用户”。

然后将其作为管理操作来完全擦除帐户和相关帖子。 这可以添加到您的常规维护工具中。


1
投票

您甚至可以在名为“uid”的用户表中添加一个额外的列,并为每个注册的新用户生成新的uid。


0
投票

帖子应该通过ID而不是用户名链接到用户,所以除非你重复使用你不应该使用的ID,否则你不会遇到这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.