日期:2014-05-16  浏览次数:20549 次

权限设计数据库结构表
核心提示:--权限许可 create table res_permission ( roleid INTEGER , resourceidvarchar2(30), operationid integer , primary key (roleid,resourceid,operationid) ) --角色定义 create table res_role ( roleid INTEGER , rolenamevarchar2(30), roledescvarchar
--权限许可      
create table res_permission      
(      
roleid      INTEGER,      
resourceid  varchar2(30),      
operationid integer,      
primary key(roleid,resourceid,operationid)      
)      
     
     
--角色定义      
create table res_role      
(      
roleid      INTEGER,      
rolename    varchar2(30),      
roledesc    varchar2(100),      
primary key(roleid)      
)      
     
--角色权限      
create table res_userrole      
(      
roleid      INTEGER,      
userid      varchar2(30),--用户名      
primary key(roleid,userid)      
)      
     
--资源      
create table res_resource      
(      
resourceid      varchar2(20),      
resourcename    varchar2(30),      
resourcedesc    varchar2(100),      
primary key(resourceid)      
)      
--操作信息      
create table res_operation      
(      
operationid      varchar2(20),      
operationname    varchar2(30),      
operationdesc    varchar2(100),      
primary key(operationid)      
)      
--res_operation 表的序列号      
create  sequence   res_operation_seq;      
--res_role 表的序列      
create  sequence   res_role_seq;      
--建立soperationid与sroleid两个序列分别用来产生Operation表与Role表的ID列      
create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1;       
create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1;      
  
表设计的原理
--根据交叉法来匹配权限
--1:根据用户表中的用户id关联到res_userrole的userid,然后再关联到res_role,查出用户对应的所有权限,存放到list中
--2:根据资源和操作查询出用户可以操作的所有许可res_permission,存放到list中
--3:通过同时遍历两个list,查询出是否存在交叉,如果存在就是有权限,否则为无权限