【问题标题】:delete user best practice?删除用户最佳实践?
【发布时间】:2010-01-03 13:31:05
【问题描述】:

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

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

如果一个用户被删除(基本上我只是在表格行中将他们的用户名和密码设为 NULL,但我将其他所有内容保持不变)并且另一个用户正在注册相同的用户名,那么人们会相信具有相同用户名的新用户拥有创建了前一个用户创建的所有线程。

还是不允许新用户选择那些已删除的用户名是例行公事?

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

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    【讨论】:

    • 但我应该将用户名和密码字段设为 NULL 对吗?然后他们无法登录
    • 不,在您的登录序列中,您应该像往常一样将用户名/密码组合与您的数据库进行比较。然后,如果此用户的“已删除”列为零/假,则用户可以正常登录。如果为 1/true,则拒绝登录。
    • 如果您将用户名字段设为空,您将在需要提及此用户的论坛帖子中显示什么?
    • 我的错误,我的意思是我将电子邮件和密码字段设为空。因为他们使用电子邮件登录。为什么我不应该将电子邮件和密码清空并让它仍然存在?
    • 因为没必要。用户的登录能力实际上取决于 a) 电子邮件/密码是否正确和 b) 他们的“已删除”字段是否错误。如果已删除的字段设置为 true,从而禁用他们的登录,那么在这种情况下,您为什么还要费心将任何其他字段设为空?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        您实际上不应该删除用户,只需在他们在数据库中的记录上设置一个“已删除”标志。 如果设置了这样的标志,则不允许用户登录。另外,显示用户页面,上面有“用户已删除”。 如果你真的删除了一条记录,你将不得不决定如何处理

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

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

        【讨论】:

          【解决方案5】:

          如果允许其他人使用旧用户名很重要,您可以将用户名更改为例如。已删除用户 X - 这样用户的帖子之间仍会有联系(这在某些情况下可能很重要)。

          【讨论】:

            【解决方案6】:

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

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

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

                帖子应该通过 ID 而不是用户名链接到用户,因此除非您不应该重复使用 ID,否则您不会遇到此问题。

                【讨论】:

                  猜你喜欢
                  • 2011-06-28
                  • 1970-01-01
                  • 2021-11-30
                  • 2011-04-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-23
                  相关资源
                  最近更新 更多