我有一张表格,其中包含以下所有角色详情。
作用:
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中查询?或者,为了更容易查询,重构表格会更好。