如何处理数据模型中的用户组和单个用户

时间:2011-04-14 17:52:55

标签: php mysql database model

我正在开发一个既有个人用户又有“用户团队”的CRM系统。我在分配任务时遇到了问题,因为我希望能够将任务/事件/线索分配给个人用户以及整个团队。

我的问题是传统上我的任务,线索或事件的数据库表会使用“uid”列将该特定事件与用户联系起来。但是,我不确定处理这种情况的最佳方式(或其他系统如何处理这种情况)。

我正在考虑添加第二列“is_team”,这只是一个bool。如果is_team列设置为true,则uid将被视为该特定行的团队ID。

有任何意见和建议吗?

2 个答案:

答案 0 :(得分:1)

嵌套用户怎么样,所以你有一个parent_id。在该parent_id中,用户可以属于实际上是组的“虚拟用户”。这样,可以将实体分配给用户或团队。

答案 1 :(得分:0)

几个想法。

首先,您可以从任务,潜在客户和事件表中删除uid列,并使用查找表替换。您可以有两个查找表,一个用于用户,一个用于团队,或者一个表包含用户和团队的列。

其次,可能会重新检查您的要求。您真的需要能够分配给个人用户或团队吗?在分配给单个用户的情况下,您是否可以将它们组成一个团队,以便所有事物(任务,线索,事件等)仅与团队相关联(即使该团队只有一个成员)?

无论您选择什么,只需尝试保持简单,并在您想出更好的方式表示数据的时候开放重构。