实际开发中,遇到这样一种情况:
某一类用户,有特定的角色,用户和数据范围的具体对应关系存在于不同表当中。
例如:
存在用户A,用户B。
用户A拥有角色A,可以管理某些大区、某些地区、某些部门。
用户B拥有角色B,可以管理某些地区、某些地区分公司、某些部门。
其中管理的范围是固定的,有大区、地区、地区分公司、部门。
每种用户可以管理其中的几种。
其中的表有:
1.区域表,包含大区和地区关系。
2.区域分公司关系表,包含大区和地区分公司的关系。
其中和地区、地区分公司是一个级别的。
3.部门表,包含所属大区、地区。
4.地区分公司、部门关联关系表。
5.用户、大区关联关系表。
6.用户、地区关联关系表。
7.用户、地区分公司关系表。
8.用户、部门关系表。
分配管理的范围的时候,可以根据角色,直接分配具体的范围。
如用户A,因为有角色A,所以可以直接分配管理的大区,或者直接分配管理的地区,或者直接分配管理的部门。
用户B,因为有角色B,所以可以直接分配管理的地区,或者直接分配管理的地区分公司,或者直接分配管理的部门。
由于可以直接分配用户和范围的关系,可能存在分配的地区不在分配的大区中,分配的学校不在分配的地区或者地区分公司下。
如:
用户A分配了西北大区,同时分配了一个东北大区下的地区,同时分配了一个西南大区中,X地区下的XX部门。
现在有这样一种业务需求,需要根据选择的大区来查询管理的部门。