permission manage database design

本文介绍了一种基于角色的权限管理系统的设计方案,包括角色、资源、操作等关键表的创建及序列生成,通过用户与角色的关联实现权限分配,并利用资源和操作表来明确权限范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  --权限许可      
  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;   

 核心提示:--权限许可 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:根据用户表中的用户id关联到res_userrole的userid,然后再关联到 res_role,查出用户对应的所有权限,存放到list中
--2:根据资源和操作查询出用户可以操作的所有许可 res_permission,存放到list中
--3:通过同时遍历两个list,查询出是否存在交叉,如果存在就是有权限,否则为无权限

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值