用户表 -- 用户角色映射表 -- 角色表 
  角色表 -- 角色权限映射表 -- 权限表
  权限表 -- 模块表
  角色表 -- 角色菜单映射表 -- 菜单表(所有的资源,包括链接,按钮)  我们现在要做的权限就是能控制到所有的链接! 而且以后还会进行二次开发的扩展.  今天看到我们项目的一个权限的结构设计,中间有几点怎么也理解不了,脑子就是转不过弯来... 求解!
  
  首先,权限表的作用是什么? 因为从这个结构看角色表直接控制了菜单表.
  而既然角色控制了所有的连接了那权限的增,删,改,查的作用体现在哪里?
  还有! 既然所有的资源都早已被角色表控制了,那权限还怎么控制模块?
  就比如说:我张三,李四属于人员模块.我这个角色已经控制了张三李四了.那权限控制的模块还有什么意义?
  因为这个设计里面的模块和菜单没有任何的关联字段.
    
  不知道各位有何见解? 求解答... 也欢迎各位提出更好的设计方案.

解决方案 »

  1.   

    搞清用户、权限、角色的关系就可以了,权限有时可以直接付给用户
      

  2.   

    用户表 -- 用户角色映射表 -- 角色表 
    角色表 -- 角色菜单映射表 -- 菜单表(所有的资源,包括链接,按钮)这两个就能控制住所有用户/角色的 资源权限了。还可以加一个 用户表-菜单表
    实现端到端的微调。 这样既能批量赋权,也能个别赋权。
    角色表 -- 角色权限映射表 -- 权限表
    权限表 -- 模块表
    这个不懂, 而且菜单和模块又没有显式的联系。话说,模块是干嘛的啊。。
      
      

  3.   


    一个模块下面有多个菜单 我也是说没联系
      

  4.   

    哦,既然一个模块下有多个菜单,那么
    角色表 -- 角色权限映射表 -- 权限表
    权限表 -- 模块表
    这种应该是根据工号角色从模块级别进行权限控制。那一个工号能看到某个菜单, 必须有以下几个条件:
    1、用户有这个模块的权限。
    2、用户有这个菜单的权限。模块的权限校验优先级比菜单的高。这样就可以了。