拿我曾经的一个项目为例子!
 
数据库表结构:
权限的实现通常是采用角色的机制!这里的角色不是数据库里的角色,像oracle里它有自己的一套角色机制。我们程序里的角色是模仿数据库里的角色,我们采用建表的策略来模仿一个数据库的角色。
 
如上图,其中T_SYS_ROLE表:
T_SYS_ROLE
 
里面存放的是各个角色,ID里是该角色的ID,这个字段是关键!其它的几个关于权限的几个表都是通过它联系在一起的!
 
表T_SYS_ROLEUSER:
T_SYS_ROLEUSER
 
里面存放的是角色和用户的对应关系!
 
表T_SYS_FUNCTION:
T_SYS_ROLEUSER
 
这个表存放的是页面上各个功能菜单。
 
表T_SYS_ROLEFUN:
T_SYS_ROLEFUN
 
这个表反应了角色和各个功能菜单的对应关系!
 
通过以上四张表,就把用户和各个功能菜单联系起来了(其实是五张表,因为我这里默认用户表已经存在了!)
根据各个角色对应的功能菜单,在页面上来显示菜单。角色不对应的菜单,该角色在页面上看不到。通过这种逻辑实现我的权限控制!