开源权限框架 Shiro 整合 web 项目的数据库设计

Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证、授权、加密、会话管理等功能。认证和授权为权限控制的核心,简单来说,“认证”就是证明你是谁!

Shiro 相关的教程有很多,但是网上大多数都是使用配置文件的形式进行dmeo样式,没有具体的结合数据库的例子。本系列文章将彻底的打破其他文章的一些规则,我们从数据库设计到整合 spring mvc,jdbc ,MyBatis等框架,完整的作出一套教程。希望大家喜欢!

本篇文章是这一系列教程文章的第一篇,我们先从数据库的设计开始实现。

用户表设计

DROP TABLE IF EXISTS `u_user`;
CREATE TABLE `u_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称',
  `email` varchar(128) DEFAULT NULL COMMENT '邮箱|登录帐号',
  `pswd` varchar(32) DEFAULT NULL COMMENT '密码',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
  `status` bigint(1) DEFAULT '1' COMMENT '1:有效,0:禁止登录',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '用户表';

设计的比较简单,但是综合演示,已经够用。实际项目中自己在添加一些字段,视具体的需求而定。

角色表设计

DROP TABLE IF EXISTS `u_role`;
CREATE TABLE `u_role` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL COMMENT '角色名称',
  `type` varchar(10) DEFAULT NULL COMMENT '角色类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '角色表';

这里面也添加了一个状态字段,用于在紧急情况下,禁止某一类用户做一些操作。这个功能常见于BAT公司中。例如国家发布一个正常,导致网盘非会员用户不能上传文件等。这个例子不是很恰当,但是实际的应用场景很是有的,不常见。

权限表设计

DROP TABLE IF EXISTS `u_permission`;
CREATE TABLE `u_permission` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `url` varchar(256) DEFAULT NULL COMMENT 'url地址',
  `name` varchar(64) DEFAULT NULL COMMENT 'url描述',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8  COMMENT 'url权限表';

这里可以细粒度到具体的按钮操作。

用户角色表设计

DROP TABLE IF EXISTS `u_user_role`;
CREATE TABLE `u_user_role` (
  `uid` bigint(20) DEFAULT NULL COMMENT '用户ID',
  `rid` bigint(20) DEFAULT NULL COMMENT '角色ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '角色权限表';

角色权限表设计

DROP TABLE IF EXISTS `u_role_permission`;
CREATE TABLE `u_role_permission` (
  `rid` bigint(20) DEFAULT NULL COMMENT '角色ID',
  `pid` bigint(20) DEFAULT NULL COMMENT '权限ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '角色权限表';

到这里,数据库我们就设计完成,再下一章我们将进行 Shiro 教程的实战开发,框架搭建的阶段。

开源权限框架 Shiro 整合 web 项目的数据库设计

: » 开源权限框架 Shiro 整合 web 项目的数据库设计

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/251498.html

(0)
上一篇 2022年5月3日 03:02
下一篇 2022年5月3日 03:06

相关推荐

发表回复

登录后才能评论