删除后如何处理用户资产

时间:2013-08-16 01:49:15

标签: php mysql database-design project-management user-management

与往常一样,如果在某个地方讨论过这个问题我会道歉。

我很想知道在删除用户时每个人如何处理相关表和资产。我目前正在开展的项目主要是项目管理/问题跟踪系统。

当用户被删除时,他们的问题,项目,文件等应该发生什么。? 我头脑中的几个场景是:

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

我遗失的任何其他可能的考虑因素?第三种解决方案现在听起来对我来说是最好的。那些从事大型项目的人,你是如何处理删除用户的?另外,我正在用php(yii)和mysql开发项目。

2 个答案:

答案 0 :(得分:2)

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

由于其他用户受到影响的情况,例如问题或任务,您应该停用用户个人资料。执行此操作的最佳方法是向数据库添加“active”列,如果用户被删除则将其设置为0。在您的系统中,您可以解析此列并显示“已删除用户”等内容。

如果没有其他任何人被分配给任务,那么如果你让他们取消分配并做出像其他用户可以选择任务或被分配到任务的池这样的东西,那将是最好的。

我和其他数据(如项目)一样。

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

永远记住,最好在服务器上获得比丢失重要信息更多的数据!

答案 1 :(得分:1)

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

根据Lukas的建议,取消激活用户。然后,所有请求用户相关对象的查询都应检查“活动”标志以包含/排除用户。当您具有复杂的连接查询以检索数据时,它会节省大量精力并使用该标志进行处理。

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