1

与往常一样,如果这个问题已经在某处讨论过,我深表歉意。

我很好奇在删除用户时每个人如何处理相关表和资产的一些见解。我目前从事的项目主要是一个项目管理/问题跟踪系统。

当用户被删除时,他们的问题、项目、文件等会发生什么?我想到的几个场景是:

  • 删除他们所有的问题、文件、项目等...
  • 将所有内容重新分配给唯一(或众多)管理员用户
  • 锁定用户帐户但保留其所有资产(但如果服务器存储成为问题,我可能需要在某个时候真正删除它们)
  • 将不存在的 user_id (0) 分配给相关表(这似乎在尝试 JOIN 表时会出现问题

我还缺少其他任何可能的考虑因素吗?第三种解决方案现在对我来说是最好的。那些做过大型项目的人,你是如何处理删除用户的?顺便说一句,我正在用 php (yii) 和 mysql 开发项目。

4

2 回答 2

2

您应该删除所有其他用户未使用的数据。

由于其他用户受到影响的情况(例如问题或任务),您应该停用用户配置文件。最好的方法是在数据库中添加一个“活动”列,如果用户被删除,则将其设置为 0。在您的系统中,您可以解析此列并显示“已删除用户”之类的内容。

如果没有其他人被分配给任务,最好让他们取消分配,并制作一个类似池的东西,其他用户可以在其中选择任务或分配给任务。

与我对其他数据(如项目)的处理方式相同。

关于文件,如果不再需要它们,删除它们是有意义的。

永远记住,在服务器上拥有更多数据比丢失重要信息要好!

于 2013-08-16T02:06:51.327 回答
1

实际上删除用户和相关对象应该是您做的最后一件事。即使是被删除的用户也是历史和有用的数据。如果它真的变得繁重,你总是可以存档它。

按照 Lukas 的建议,改为停用用户。然后,所有请求用户相关对象的查询都应检查“活动”标志以包含/排除用户。当您使用复杂的连接查询来检索数据时,使用该标志可以节省大量工作和处理。

当涉及到“实际”资产(例如文件)时,它们可能会占用大量空间,但如果它们与非活动用户相关,您也不应该删除它们。如有必要,再次存档。它可能需要在指向该资产的条目中添加一个“存档”标志,这样您就不会在文件不存在时尝试打开该文件。

于 2013-08-16T06:38:40.060 回答