权限设计数据库结构表

核心提示:--权限许可 create table res_permission ( roleid INTEGER , resourceidvarchar2(30), operationid integer , primary key (roleid,resourceid,operationid) ) --角色定义 create table res_role ( roleid INTEGER , rolenamevarchar2(30), roledescvarchar
 
  1. --权限许可      
  2. create table res_permission      
  3. (      
  4.  roleid      INTEGER,      
  5.  resourceid  varchar2(30),      
  6.  operationid integer,      
  7.  primary key(roleid,resourceid,operationid)      
  8. )      
  9.      
  10.      
  11. --角色定义      
  12. create table res_role      
  13. (      
  14.  roleid      INTEGER,      
  15.  rolename    varchar2(30),      
  16.  roledesc    varchar2(100),      
  17.  primary key(roleid)      
  18. )      
  19.      
  20. --角色权限      
  21. create table res_userrole      
  22. (      
  23.  roleid      INTEGER,      
  24.  userid      varchar2(30),--用户名      
  25.  primary key(roleid,userid)      
  26. )      
  27.      
  28. --资源      
  29. create table res_resource      
  30. (      
  31.  resourceid      varchar2(20),      
  32.  resourcename    varchar2(30),      
  33.  resourcedesc    varchar2(100),      
  34.  primary key(resourceid)      
  35. )      
  36. --操作信息      
  37. create table res_operation      
  38. (      
  39.  operationid      varchar2(20),      
  40.  operationname    varchar2(30),      
  41.  operationdesc    varchar2(100),      
  42.  primary key(operationid)      
  43. )      
  44. --res_operation 表的序列号      
  45. create  sequence   res_operation_seq;      
  46. --res_role 表的序列      
  47. create  sequence   res_role_seq;      
  48. --建立soperationid与sroleid两个序列分别用来产生Operation表与Role表的ID列      
  49. create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1;       
  50. create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1;      
  51.   

 

--表设计的原理
--根据交叉法来匹配权限
--1:根据用户表中的用户id关联到res_userrole的userid,然后再关联到res_role,查出用户对应的所有权限,存放到list中
--2:根据资源和操作查询出用户可以操作的所有许可res_permission,存放到list中
--3:通过同时遍历两个list,查询出是否存在交叉,如果存在就是有权限,否则为无权限

转载于http://ajava.org/hot/user/11674.html

你可能感兴趣的:(职场,休闲,表设计的原理)