首页 > 其他分享 >Shiro权限 表设计

Shiro权限 表设计

时间:2022-12-02 15:48:19浏览次数:36  
标签:COMMENT VARCHAR 角色 开启 sys 设计 权限 Shiro

表设计

权限管理需要的基本表有5个 如下:

  • sys_users用户表
  • sys_roles角色表
  • sys_permissions权限表(或资源表)
  • sys_users_roles用户-角色关联表
  • sys_roles_permissions角色-权限关联表(或角色-资源关联表)

用户表:

角色表:

权限表:

用户角色表:

角色权限表:

最后上完整代码:

##用户表
CREATE TABLE sys_users(
   id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
   username VARCHAR(100) COMMENT '用户名',
   phone VARCHAR(20) COMMENT '手机号',
   PASSWORD VARCHAR(100) COMMENT '密码',
   salt VARCHAR(100) COMMENT '盐值',
   icon VARCHAR(400) COMMENT '头像',
   address VARCHAR(120) COMMENT '住址',
   locaed VARCHAR(8) DEFAULT '开启' COMMENT '状态'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='用户表';

##角色表
CREATE TABLE sys_roles(
 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '角色编号',
 rolename VARCHAR(100) COMMENT '角色名称',
 description VARCHAR(100) COMMENT '角色描述',
 available VARCHAR(8) DEFAULT '开启' COMMENT '状态'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='角色表';


##权限表
CREATE TABLE sys_permissions(
 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
 NAME VARCHAR(100) COMMENT '权限名称',
 url VARCHAR(100) COMMENT '权限路径',
 TYPE VARCHAR(100) COMMENT '权限类型',
 pid INT COMMENT '父节点',
 available VARCHAR(8) DEFAULT '开启' COMMENT '状态'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='权限表'


##用户角色关系表
CREATE TABLE sys_user_role(
  id INT(11) PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT,
  role_id BIGINT
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='用户角色表'

##角色权限关系表
CREATE TABLE sys_role_permission(
 id INT(11) PRIMARY KEY AUTO_INCREMENT,
 role_id BIGINT,
 permission_id BIGINT
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='角色权限表'

插入数据语句:

##用户表
INSERT INTO sys_users(username,phone,PASSWORD,salt,icon,address,locaed)
VALUES
('admin','15271700712','47401c60d14382166631feae98511a18','lq','my.jpg','湖北省武汉市','开启'),
('user','13085238807','47401c60d14382166631feae98511a18','lq','my.jpg','湖南省长沙市','开启'),
('guest','1784545751','fe00294a99ced9aa2477fcdb231cb316','lq','my.jpg','广东省深圳市','关闭')

##角色表
INSERT INTO sys_roles(rolename,description,available)
VALUES
('普通用户','拥有查询,添加权限','开启'),
('超级管理','拥有查询,添加,删除,修改权限','开启'),
('匿名游客','拥有观赏权限','开启')


##权限表
INSERT INTO sys_permissions(NAME,url,TYPE,pid,available)
VALUES
('系统设置','null','menu',0,'开启'),
('销售管理','null','menu',0,'开启'),
('用户管理','user/list','menu',1,'开启'),
('角色管理','role/list','menu',1,'开启'),
('角色添加','role/add','button','4','开启'),
('角色删除','role/delete','button','4','开启'),
('角色修改','role/update','button','4','开启'),
('角色查询','role/find','button','4','开启'),
('用户添加','user/add','button','3','开启'),
('用户删除','user/delete','button','3','开启'),
('用户修改','user/update','button','3','开启'),
('用户查询','user/find','button','3','开启')


##用户角色表关系表
INSERT INTO sys_user_role(user_id,role_id)VALUES(1,1),(1,2),(1,3),(2,1),(2,3),(3,3)


##角色权限表关系表
INSERT INTO sys_role_permission(role_id,permission_id)VALUES(1,1),(1,8),(1,12),(2,1),(2,2),(2,3),(2,4),(2,12),(3,0)

最后感言


如果使用外键关联,在对表进行数据操作时就考虑另一张关联的表,相当于两张表就绑在一起了,操作这张表就必须考虑另一张关联表。我们开发时候不想立即就修改或更新关联表的数据,可能一会再去更新另一张关联表的数据,那么就产生了这种方式:通过单独建立一张关联来实现两张表的数据关联。so,在设计表时尽量减少表与表直接的外键约束,避免麻烦,表关联关系清晰

标签:COMMENT,VARCHAR,角色,开启,sys,设计,权限,Shiro
From: https://www.cnblogs.com/xiedy001/p/16944628.html

相关文章

  • 浅谈智慧校园能源监控的设计
    罗轩志安科瑞电气股份有限公司 上海嘉定 201801 摘要 基于网络通讯技术,搭建校园能源实时在线监控平台。对南京技师学院重点耗能楼宇或设备的关键参数实施在线采集及分......
  • C++ 设计一个类模板,有数据成员T data[size],有求最大值的方法getMax()和排序的方法sort
    #include<iostream>#include<string>usingnamespacestd;template<typenameT,intsize>classData{Tdata[size];public:Data(){cout<<......
  • 浅析电弧光保护在发电厂10KV厂用电系统中的设计应用方案
     刘丹安科瑞电气股份有限公司上海嘉定201801摘要:介绍了电弧光产生、危害及电弧光保护的原理和组成,对发电厂10KV中压厂用电系统保护的现状及存在的不足进行了分析,以福建......
  • 云南德宏芒市机场电气火灾监控系统的设计及应用
    安科瑞陈盼摘要:本文简述了电气火灾监控系统的组成原理,分析了电气火灾监控系统在应用中的设计依据和相关规范。最后通过安科瑞剩余电流式电气火灾监控系统在云南德宏芒市机场......
  • 浅析医药工业类洁净厂房电气消防设计与应用
     罗轩志安科瑞电气股份有限公司上海嘉定201801摘要:结合国家相关规范及多年药厂洁净车间的设计经验,就医药工业洁净厂房电气消防设计中的具体做法作了简要论述,指出只有在对......
  • 浅谈数据中心机房动环监控的设计
    罗轩志安科瑞电气股份有限公司上海嘉定201801摘要: 机房动力和环境监控系统是对分布的精密机房及通信局(站)内的电源、空调、油机、蓄电池、高低压配电等多种设备和环境的各......
  • 基于边缘计算技术的综合管廊智能化电气设计与应用研究
    罗轩志安科瑞电气股份有限公司 上海嘉定 201801摘要:文章采用物联网技术云、边、端全方面的应用,开发物联网边缘计算控制器和物联网平台,提高管廊感知能力,降低集成难度,从而......
  • 车载测试系列:SOA设计实现
    SOA设计原则SOA在互联网,用的是客户端/服务器的架构。实现逻辑为:客户端通过网络向服务器发送请求,服务器响应请求。 客户端/服务器架构之上的进一步抽象是面向服务的范......
  • 车载测试系列:SOA架构设计
    汽车传统架构很难满足新增信号、新增节点、变更功能等问题: 新增信号流怎么办?修改通信矩阵?突然增加一个节点,怎么办?修改路由表?变更功能如何从其他节点获取所需信息?......
  • 设计一个项目的数据库
    糟糕的数据库设计   --数据冗余,浪费空间   --数据库插入和删除比较麻烦   --程序性能差  良好的数据设计设计数据库的步骤(个人博客) 1、收集......