权限设计数据库结构表

来源:互联网 发布:金融类英语翻译软件 编辑:程序博客网 时间:2024/05/19 12:28
  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. create table res_role      
  11. (      
  12.  roleid      INTEGER,      
  13.  rolename    varchar2(30),      
  14.  roledesc    varchar2(100),      
  15.  primary key(roleid)      
  16. )      
  17.      
  18. --角色权限      
  19. create table res_userrole      
  20. (      
  21.  roleid      INTEGER,      
  22.  userid      varchar2(30),--用户名      
  23.  primary key(roleid,userid)      
  24. )      
  25.      
  26. --资源      
  27. create table res_resource      
  28. (      
  29.  resourceid      varchar2(20),      
  30.  resourcename    varchar2(30),      
  31.  resourcedesc    varchar2(100),      
  32.  primary key(resourceid)      
  33. )      
  34. --操作信息      
  35. create table res_operation      
  36. (      
  37.  operationid      varchar2(20),      
  38.  operationname    varchar2(30),      
  39.  operationdesc    varchar2(100),      
  40.  primary key(operationid)      
  41. )      
  42. --res_operation 表的序列号      
  43. create  sequence   res_operation_seq;      
  44. --res_role 表的序列      
  45. create  sequence   res_role_seq;      
  46. --建立soperationid与sroleid两个序列分别用来产生Operation表与Role表的ID列      
  47. create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1;       
  48. create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1;      

  49. --表设计的原理

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