DataBseDesign工作笔记002---数据库表设计
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---数据库表设计相关推荐
- 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区
数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...
- 商城 商品模块 数据库 表设计
商城 商品模块 数据库 表设计 要实现一个商城,对于商品模块中的数据库表设计不懂,主要是:相同类别的产品的产品参数相同,不同类别的不同,这里就不懂要怎么设计了,所以上网找几篇博客了解. 什么是SPU. ...
- 大数据之路读书笔记-11事实表设计
大数据之路读书笔记-11事实表设计 文章目录 大数据之路读书笔记-11事实表设计 11.1 事实表基础 11.1.1 事实表特性 11.1.2 事实表设计原则 11.1.3 事实表设计方法 11.2 ...
- mysql设计积分兑换表_积分系统数据库表设计.docx
积分系统数据库表设计 文件编号:JHDZ/SJ 密 级: 云上城积分功能数据库设计文档 项目名称:<云上城>项目代号:XXX版 本:V1.0编制单位:平台运营编制日期:2014-10-08 ...
- 万字归纳总结 | 数据库表设计与SQL编写技巧
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 前言 随着移动云平台系统业务不断增长,必然需要对各系统进行 ...
- 数据库表设计索引外键设计_关于索引的设计决策 数据库管理系统
数据库表设计索引外键设计 Introduction: 介绍: The attributes whose values are required inequality or range conditio ...
- 美多商城项目:商品数据库表设计、准备商品数据、首页广告、商品列表页
一.商品数据库表设计 1.1 SPU和SKU 在电商中对于商品,有两个重要的概念:SPU和SKU 1. SPU介绍 SPU = Standard Product Unit (标准产品单位) SPU是商 ...
- 数据库表设计的几个原则
前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据.本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际 ...
- 数据库表设计(一)——基本原则和概念
数据库表设计的技巧 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的 ...
- 数据库表设计的几点原则
前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据.本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际 ...
最新文章
- Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
- 说人话教AI打游戏,Facebook开源迷你版星际争霸,成果登上NeurIPS 2019
- windows下带超时的telnet探测IP和端口
- optee的Offline Signing of TAs方案
- IDOC、ALE、EDI三者之间的区别与联系
- ORA-00600: 内部错误代码,参数: [qctcte1], [0], [], [], [], [], [], []
- php 操作文件夹 (遍历 计算大小)
- 直播预告丨 PostgreSQL数据库安全体系介绍
- Intel Skylake (Client) 架构/微架构/流水线 (5) - PAUSE指令时延
- C# 中 ? 和 ??
- 宝岛探险1(BFS)
- liunx 环境-配置docker阿里云镜像加速
- JSP中request内置对象
- 初识Jasima-Jasima中的事件和消息
- C/C++ QT图形开发高级组件 [空]
- 图解WinHex使用入门
- WPS文字教你制作米字本即用于临摹练字的米字格
- 等保2.0三级安全要求
- C++实现 L1-054 福到了 (15分)
- 如何安装用友NC6.5