树权限数据库设计

时间:2017-11-07 23:28:43

标签: mysql database-design

我不确定如何问这个,所以我会尝试用一个例子来说明。

我想要实现的是一个能够识别不同级别权限的应用程序。我无法弄清楚我的数据库和查询应该如何制作。

有这个级别的用户:

  1. 管理器
  2. 执行
  3. 因此,我的用户表中的列将是一个特权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
    

    因此,如果执行官进入应用程序,它将只能看到自己的客户。

    但如果一位经理进去,他将能够看到他的客户以及分配给他的高管。董事也是如此。

    这是正确的方法吗?如果是这样,那么有效查询的最佳方法是什么?

    示例图表(您可以看到组织结构图以及每个用户拥有的每个成本计算器。diagram

    例如,如果用户要检查他的客户,他应该看到:

    导演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

    高管只会看到自己的客户。

0 个答案:

没有答案