一、概述

1、用户权限是任何一个应用程序的基础模块,是为应用程序提供安全访问规则的实现,用于保障系统的安全和数据安全基础。本次主要实现 一个基于角色的用户权限管理系统,后端采用Springboot与Shiro整合实现权限认证管理。

2、名词解释:

用户(User):是软件系统使用者的系统账号。每个使用者,都有自己在系统中独一无二的账号,系统通过这个账号来识别不同的使用者,同时,也是通过当前的用户来认证当前使用者的权限。

角色(Role):可以理解为一定数量的权限的集合,权限的载体,例如:系统管理员,普通用户。

权限(Permission):指对软件系统中某一个功能或者资源操作的权利。

二、数据库设计

1、说明

一个用户可以拥有多个权限,同时一个权限也可以赋予多个用户,那么用户和权限就是多对多的关系,需要角色来维护和链接用户和权限之间的关系。通过用户关联角色,角色关联权限,从而达到用户和权限的一个间接关联关系。而用户和角色,角色和权限也是多对多的全系,从而也需要引入用户角色和角色权限两张中间表来实现。

(1) 每一个用户包含的属性有用户ID,用户名称,密码,用户状态等基本属性。

(2) 每一个角色包含的属性有角色ID,角色名称,状态等基本属性。

(3) 每一个权限包含的属性有权限ID,权限名称,URL,权限编码,父级ID,权限类型,状态等基本属性。

2、概念模型设计

根据说明,设计的实体联系E-R图如下:

3、  关系模式设计(下划线主键)

用户(用户ID,用户名称,密码,状态,创建时间,、、、)

角色(角色ID,角色名称,状态,创建时间,、、、)

权限(权限ID,权限名称,URL,权限编码,父级ID,权限类型,状态,、、、)

用户角色 ( 用户ID,角色ID )用户ID和角色ID均设置为外键约束

角色权限(角色ID,用户ID)用户ID和角色ID均设置为外键约束

4、关联关系

5、表中数据形式

用户表

角色表

权限表

用户角色表

角色权限表

6、实现的结果

根据登录用户的ID,查询用户的权限,从而实现根据不同用户生成不同的菜单与实现更细粒度的权限管理。

select distinct f.func_id,f.func_name,f.func_url,f.func_code,f.parent_id,f.func_type,f.status,f.sort_num,f.create_time,f.update_time
from tb_roles r,tb_functions f,tb_role_function rf where r.role_id =rf.role_id and f.func_id = rf.func_id and r.role_id in(
select r.role_id from tb_users u,tb_roles r,tb_user_role ur where u.user_id = ur.user_id and r.role_id = ur.role_id and f.func_type=1
and u.user_id = 1);

Java权限管理系统之数据库设计(一)相关推荐

  1. 程序逸的Java项目之旅-图书管理系统之数据库设计(2-完)

    紧接上篇博客>>>>>>程序逸的Java项目之旅-图书管理系统之数据库设计(1) 4.数据库表的创建 对于数据库表,我们可以通过cmd窗口进行创建,但那种方法有点麻 ...

  2. 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档)

    计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  3. 图书馆管理系统的数据库设计

    图书馆管理系统的数据库设计 --学生表 CREATE TABLE stu_info( --学号 stu_num varchar(10) primary key, --姓名 stu_name varch ...

  4. 小区物业管理系统-总结-数据库设计

    小区物业管理系统-总结-数据库设计 图3- 1 数据库E-R图 3.1数据库整体设计 通过需求分析,建立数据库存储表. 需要的数据表有: 1)物业管理人员表:用于存储物业管理人员的各项信息: 2)楼房 ...

  5. 人事工资信息管理系统(数据库设计)

    人事工资信息管理系统之数据库设计 表名:Area 序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明 1 id int 4 0 是 否 2 areaID nvarchar 50 ...

  6. 图书管理系统的数据库设计

    一.实验目的 选用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析.概念设计.逻辑设计.物理设计和实施.同时能够正确应用各个阶 ...

  7. spring整合shiro权限管理与数据库设计

    之前的文章中我们完成了基础框架的搭建,现在基本上所有的后台系统都逃不过权限管理这一块,这算是一个刚需了.现在我们来集成shiro来达到颗粒化权限管理,也就是从连接菜单到页面功能按钮,都进行权限都验证, ...

  8. 高校学籍管理系统【数据库设计】2020.7.26

    目录 一.前言 二.需求设计 三.概念结构设计 四.逻辑结构设计 五.物理结构设计 六.数据库实施 七.运行与维护 八.总结 一.前言 目前,我国高校管理学籍的工作人员都没有经过系统科学的培训,对于现 ...

  9. 基于员工管理权限系统的数据库设计完整版

    设计一个灵活.通用.方便的权限管理系统. 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作.数据列)和动态资源(数据),也 ...

  10. 学生信息管理系统(数据库设计)

    1 分析 1.1 业务分析: 学生信息管理系统是高校面向教师和学生设计的一个多功能数据管理平台,本篇文章针对学生信息管理系统的数据库进行分析. 1.2 系统分析: (1)用户:学生,教师 (2)功能: ...

最新文章

  1. 如何禁止页面被 jframe 引用_PD1该如何使用?靶向能否转用PD1?
  2. 梯度倒谱matlab程序,MFCC梅尔倒谱参数及matlab代码
  3. 接收对象数组_示例: Bit数组
  4. 致不可重新来过一次的青春(上)
  5. websocket receive方法内 有循环怎么退出_认识HTML5的WebSocket
  6. php laravel 调试,php – Xdebug laravel artisan命令
  7. 解决:vue.esm.js?efeb:591 [Vue warn]: Do not use built-in or reserved HTML elements as component id: me
  8. 甲骨文就 Java 安全问题与 FTC 达成和解
  9. java调用solr的分词查询结果
  10. 【react】 redux 公共状态管理---数据的渲染,数据的修改,再把修改的数据渲染到当前组件...
  11. windows远程连接centos桌面
  12. 汉字大全20000个字_男生秀恩爱的说说简短八字 小情话大全暖心8个字
  13. 手机端html5页面横屏显示,移动端HTML5中判断横屏竖屏的方法
  14. 【区块链基础】2——BTC区块结构
  15. Java微信开发(通过java程序获取用户个人信息)
  16. Photoshop快速切图技巧
  17. 平板触控笔要原装的吗?开学季必备电容笔推荐
  18. divi 相关主题推荐
  19. html扇形展开,css如何画扇形?
  20. 一坨咸鱼怎么更上一层楼

热门文章

  1. Java练手小游戏集结,你还在等什么
  2. java安卓版_Java虚拟机安卓版下载
  3. java学习资料整理(开发必备)
  4. 记 * 恢复ext4硬盘的数据
  5. 点云数据处理实现Qt界面常用功能
  6. 服务器dump文件位置,dump解析入门-用VS解析dump文件进行排障
  7. 【数据分析学习笔记day26】自然语言处理NLTKPython文本分析工具NLTK 情感分析+ 文本相似度 +文本分类 +分类预测模型+朴素贝叶斯+ 实战案例+微博情感分析
  8. 【Matlab优化预测】贝叶斯网络优化LSTM预测【含源码 1158期】
  9. Asp.net自定义控件开发任我行(4)-ViewState保存控件状态
  10. 103 规约分析总结