我不确定如何问这个,所以我会尝试用一个例子来说明。
我想要实现的是一个能够识别不同级别权限的应用程序。我无法弄清楚我的数据库和查询应该如何制作。
有这个级别的用户:
因此,我的用户表中的列将是一个特权INT,用于了解哪种类型的用户,另一列将是父用户,因为将向管理员分配x个管理员数量,并且将分配x个管理员数量导演。
示例表USERS:
ID username privilege parent
1 Director1 1 null
2 Director2 1 null
3 Manager1 2 1
4 Manager2 2 1
5 Manager3 2 2
6 Executive1 3 3
7 Executive2 3 3
8 Executive3 3 4
9 Executive4 3 4
10 Executive5 3 5
11 Executive6 3 5
他们会有他们的“顾客”。
示例表COSTUMERS
ID name seller
1 c1 11
2 c2 10
3 c3 10
4 c4 9
5 c5 8
6 c6 7
7 c7 6
8 c8 5
9 c9 4
10 c10 3
11 c11 2
12 c12 1
因此,如果执行官进入应用程序,它将只能看到自己的客户。
但如果一位经理进去,他将能够看到他的客户以及分配给他的高管。董事也是如此。这是正确的方法吗?如果是这样,那么有效查询的最佳方法是什么?
示例图表(您可以看到组织结构图以及每个用户拥有的每个成本计算器。
例如,如果用户要检查他的客户,他应该看到:导演1:C12,C10,C9,C7,C6,C5,C4
导演2:C11,C8,C3,C2,C1
经理1:C10,C7,C6
经理2:C9,C5,C4
Manager3:C8,C3,C2,C1
高管只会看到自己的客户。