权限设计数据库结构表
核心提示:--权限许可 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,查询出是否存在交叉,如果存在就是有权限,否则为无权限