JAVA技术交流QQ群:170933152

RBAC(基于角色的权限访问控制),很明显要有角色表、权限表,当然用户表是不能少的,在加上两张关联表,用户角色表(这里一个用户只对应一个角色,按道理可以整合一张表,在用户表里加上一个角色id),角色权限表。此外,还要设计一张用户操作信息日志表,记录用户的操作信息。


用户表 
角色表 
权限表 
用户角色表 
角色权限表 
操作信息日志表

注:所有的数据字段都为非空字段,设有默认值,每个字段都加有注释


用户表的DDL

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名',`email` varchar(36) NOT NULL DEFAULT '' COMMENT '用户邮箱',`is_admin` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为超级管理员1:是、0:否,默认不是',`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该条记录是否有效1:有效、0:无效',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

角色表DDL

CREATE TABLE `role` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色id',`name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名',`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效1:有效、0:无效',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

权限表DDL

CREATE TABLE `access` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限id',`title` varchar(64) NOT NULL DEFAULT '' COMMENT '权限标题',`uris` varchar(1000) NOT NULL DEFAULT '' COMMENT '权限路径',`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效1:有效、0:无效',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

用户角色表DDL

CREATE TABLE `user_role` (`id` int(11) NOT NULL COMMENT '主键',`uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id',`role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

角色权限表DDL

CREATE TABLE `role_access` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id',`access_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限id',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

操作信息日志表DDL

CREATE TABLE `operate_log_info` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`uid` int(11) NOT NULL DEFAULT '0' COMMENT '操作用户id',`uname` varchar(64) NOT NULL DEFAULT '' COMMENT '操作用户名',`from_ip` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人的机器ip',`operate_func` varchar(255) NOT NULL DEFAULT '' COMMENT '操作的功能,例如:登录、插入记录等等',`visit_method` varchar(255) NOT NULL DEFAULT '' COMMENT '调用入口的方法',`method_cost_time` varchar(255) NOT NULL DEFAULT '' COMMENT '访问方法所花费的时间',`log_type` varchar(32) NOT NULL DEFAULT '' COMMENT '日志类型:error/info/warn',`uri` varchar(255) NOT NULL DEFAULT '' COMMENT '访问路径',`method` varchar(16) NOT NULL DEFAULT '' COMMENT '请求方法:post/get/put/delete/head',`visit_method_error_info` varchar(1000) NOT NULL DEFAULT '' COMMENT '访问方法的错误信息',`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '该记录是否有效,1:有效、0:无效',`login_out_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

DataBseDesign工作笔记002---数据库表设计相关推荐

  1. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

  2. 商城 商品模块 数据库 表设计

    商城 商品模块 数据库 表设计 要实现一个商城,对于商品模块中的数据库表设计不懂,主要是:相同类别的产品的产品参数相同,不同类别的不同,这里就不懂要怎么设计了,所以上网找几篇博客了解. 什么是SPU. ...

  3. 大数据之路读书笔记-11事实表设计

    大数据之路读书笔记-11事实表设计 文章目录 大数据之路读书笔记-11事实表设计 11.1 事实表基础 11.1.1 事实表特性 11.1.2 事实表设计原则 11.1.3 事实表设计方法 11.2 ...

  4. mysql设计积分兑换表_积分系统数据库表设计.docx

    积分系统数据库表设计 文件编号:JHDZ/SJ 密 级: 云上城积分功能数据库设计文档 项目名称:<云上城>项目代号:XXX版 本:V1.0编制单位:平台运营编制日期:2014-10-08 ...

  5. 万字归纳总结 | 数据库表设计与SQL编写技巧

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 前言 随着移动云平台系统业务不断增长,必然需要对各系统进行 ...

  6. 数据库表设计索引外键设计_关于索引的设计决策 数据库管理系统

    数据库表设计索引外键设计 Introduction: 介绍: The attributes whose values are required inequality or range conditio ...

  7. 美多商城项目:商品数据库表设计、准备商品数据、首页广告、商品列表页

    一.商品数据库表设计 1.1 SPU和SKU 在电商中对于商品,有两个重要的概念:SPU和SKU 1. SPU介绍 SPU = Standard Product Unit (标准产品单位) SPU是商 ...

  8. 数据库表设计的几个原则

    前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据.本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际 ...

  9. 数据库表设计(一)——基本原则和概念

    数据库表设计的技巧 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的 ...

  10. 数据库表设计的几点原则

    前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据.本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际 ...

最新文章

  1. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
  2. 说人话教AI打游戏,Facebook开源迷你版星际争霸,成果登上NeurIPS 2019
  3. windows下带超时的telnet探测IP和端口
  4. optee的Offline Signing of TAs方案
  5. IDOC、ALE、EDI三者之间的区别与联系
  6. ORA-00600: 内部错误代码,参数: [qctcte1], [0], [], [], [], [], [], []
  7. php 操作文件夹 (遍历 计算大小)
  8. 直播预告丨 PostgreSQL数据库安全体系介绍
  9. Intel Skylake (Client) 架构/微架构/流水线 (5) - PAUSE指令时延
  10. C# 中 ? 和 ??
  11. 宝岛探险1(BFS)
  12. liunx 环境-配置docker阿里云镜像加速
  13. JSP中request内置对象
  14. 初识Jasima-Jasima中的事件和消息
  15. C/C++ QT图形开发高级组件 [空]
  16. 图解WinHex使用入门
  17. WPS文字教你制作米字本即用于临摹练字的米字格
  18. 等保2.0三级安全要求
  19. C++实现 L1-054 福到了 (15分)
  20. 如何安装用友NC6.5

热门文章

  1. MyBatis入门让它跑起来
  2. Pytorch:手动求导和autograd的计算对比
  3. 如何快速清除 Ubuntu 的系统缓存
  4. mysqld或mysqld_safe启动时必须放在第一位的参数(first argument)
  5. 6、Learn by doing才是正确的技术学习姿势
  6. grub的概念,简单描述一下
  7. EasyUI-dialog
  8. android通过ContentProvider 取得电话本的数据
  9. Delphi使用经验笔记。
  10. [Usaco2009 Feb]Bullcow 牡牛和牝牛