需要用到5张表:
用户表(UserInfo)、角色表(RoleInfo)、权限表(AuthorizationInfo)、用户角色表(UserRole)、角色权限表(RoleAuthorization)
各表的大体表结构如下:
1、用户表(UserInfo):Id、UserName、UserPwd
2、角色表(RoleInfo):Id、RoleName
3、菜单表(AuthorizationInfo):Id、AuthorizationName
4、用户角色表(UserRole):Id、UserId、RoleId
5、角色菜单表(RoleAuthorization):Id、RoleId、AuthorizationId
最关键的地方是,某个用户登录时,如何查找该用户的菜单权限?其实一条语句即可搞定:
假如用户的用户名为zhangsan,则他的菜单权限查询如下:
Select a.Id,a.AuthorizationName
from UserInfo u , UserRole ur , RoleAuthorization ra , AuthorizationInfo a ,
Where ur.UserId = u.Id and ur.RoleId = ra.RoleId and a.Id = ra.AuthorizationId and u.userName='zhangsan';