zoukankan      html  css  js  c++  java
  • 角色模型:用户、部门、角色、权限、模块的关系模型 【转】

    很长时间以来,一直想总结一下自己在编制应用过程中的用户、部门、角色、权限、模块的关系模型,但是由于很多的原因一直没有整理,现在我想仔细的整理一下,与大家交流。


     


    一般简单的角色模型为:用户 -> 权限


    最常用的角色模型为:用户-〉角色-〉权限


     


    我想现在大部分的软件在使用:用户-〉角色->权限
    的关系模型。但是在我做OA这类应用的时候发现,仅仅是这么简单的角色控制实在是太弱,经过长时间的改良,现在我使用的关系模型包括了用户、部门、角色、权限、模块这些内容,它们之间的关系如下:










    这个角色关系比较复杂,图中的箭头指示的是隶属关系,下面我分别介绍各部分的用途。


     


    用户


    用户可以隶属于某一个部门,也可以隶属于某一个角色。用户的权限取决于自己直接指定的权限和她隶属的部门、角色所拥有的权限。


    用户-〉部门:1对1


    用户-〉角色:1对多


     


    部门


    部门属于一个特殊类型,它不光指定某个用户属于哪个部门,它还有自包含的特性。例如:A部门隶属于B部门,这时候A部门会自动继承B部门所有的权限。


    部门-〉部门:1对1


     


    角色


    角色也属于一个特殊类型,他也有自包含的特性。例如:C角色隶属于D角色,则C角色自动继承D角色的权限。


    角色-〉角色:一对多


     


    权限


    权限属于最底层的内容,前面所说的用户、部门、角色都是围绕权限来设计的。


     权限-〉用户:一对多


    权限-〉角色:一对多


    权限-〉部门:一对多


     


    模块


    如果开发的软件具有自定义模块或者是模块式的,这部分就有用了。这个可以根据权限取得用户可以使用的模块列表。


     模块-〉权限:一对多


     


    大致把我使用的角色模型说一下,当然这里面的权限都是以授权为准的,我还想在里面加上权限的禁止。但是一直没有这块的应用需求,所以也没有想过。大家如果有兴趣可以一块想想。

  • 相关阅读:
    java几种常用设计模式简单示例
    字符串常用方法
    File类常用方法
    如何在一个form表单中实现多个submit
    CC EAL认证
    ARQC与ARPC的生成和校验方法
    金融卡IC卡知识50问
    M(必备),R(需求),C(条件),O(可选)
    非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
    电子钱包和电子存折的区别
  • 原文地址:https://www.cnblogs.com/cxd4321/p/3298559.html
Copyright © 2011-2022 走看看