MySQL查询以查明用户是否属于另一个用户的团队

时间:2014-06-26 15:18:54

标签: mysql sql hierarchy multi-level

我有一张表格,其中包含以下所有角色详情。

作用:

   id   name 
   1    level 1   
   2    level 2
   3    level 3
   4    level 4

另一个表具有以下用户角色详细信息。

User_roles:

user_id    role_id    leader_id        company_id
100              1          102          1000
100              4                       1001
101              4                       1001
101              1           102         1000 
102              2           105         1000  
102              3           101         1001    
103              2           102         1001   

用户可以拥有无​​限的角色。每个角色也有一个与之相关的公司和领导者,尽管领导者是可选的,因为他们可以是最高的。有8个级别的用户,但对于一些公司,他们可能使用的最高级别可能是3或4,因此它会有所不同。

如上所述,用户101在一个角色和公司的用户102下。然后对于另一个角色,用户102在不同公司的用户101下。 2级用户只能看到在他下面分配的1级用户。

但是,4级用户只能看到属于他下属团队的1级用户。如果您将其视为树状结构,则只能看到其分支上的用户。现在,如果我传递user_id(103),我如何查询当前登录的用户ID是否可以访问它(101)。如您所见,100和101都是同一家公司的第4级。但是,只有101可以看到103.

如何在MySQL中查询?或者,为了更容易查询,重构表格会更好。

0 个答案:

没有答案