权限管理(1)

需求:
    1、不同职责的人员,对于系统操作的权限应该是不同的;
    2、可以对“组”进行权限分配;
    3、权限管理系统应该是可扩展的;
    4、满足业务系统中的功能权限
数据库结构:
    权限表(action)、管理组表(groupmanager)、人员表(master),这三张表依次记录着权限信息、管理组信息、人员信息。这三张表之间的关系是多对多关系,一个权限可能同时属于多个管理组,一个管理组中也可能同时包含多个权限,一个人员可能同时属于多个管理组,而一个管理组中也可能同时包含多个人员。
    由于这三张表之间存在着多对多的关系,那么他们之间的交互,最好使用中间表来完成。中间表分别位权限管理组映射表(actiongroup),管理组人员映射表(mastergroup)。权限管理组映射表映射了权限表与管理组表之间的交互,管理组人员映射表映射了人员表与管理组表之间的交互。
    除上述表之外,还需要一张表来控制系统运行时左侧菜单栏中的权限分栏,也就是权限分栏表(actioncolumn)

权限映射相关表关系

 人员映射相关表关系

最终“组”操作设计

权限分栏表和权限表之间的关系 

    系统重用性:
    1、权限、组和人,这三种元素可以任意添加,彼此之间不受影响。无论是那种类型的业务系统,这三个决定性因素是不会变的,也就以为着结构上不会变,而变得仅仅是数据;
    2、两张映射表中记录着三个元素之间的关系。但这些关系完全是人为创建的,需要变化的时候,只是对数据库中的记录进行操作,无需改动结构;
    3、权限分栏表中记录着系统使用时显示的分栏。无论是要添加分栏,修改分栏还是减少分栏,也只不过是操作记录而已

    总结:此套系统的重点在于,三张实体表牢牢地抓住了系统的核心成分,而两张映射表完美地映射出三张实体表之间的交互。其难点在于,理解映射表的工作,它记录着关系,并且实现了“组”操作的概念。而系统总体的设计是本着可以在不同的MIS系统中“重用”来满足不同系统的功能权限设置。

    以下是具体的数据库表字段设计


版权声明:本文为qq_40386113原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。