数据库设计原则

svbadmin学习日志

本学习日志是使用Springboot和Vue来搭建的后台管理系统:
演示地址:http://118.31.68.110:8081/index.html
账号:root
密码:123
所有代码可以在gitbub上找到,切换到相应分支即可。【代码传送门】

正篇

第一节 spring boot 模块化构建项目
第二节 整合mybatisplus完成用户增删改查
第三节 整合springsecurity实现基于RBAC的用户登录
第四节 springsecurity结合jwt实现前后端分离开发
第五节 使用ResponseBodyAdvice格式化接口输出
第六节 springboot结合redis实现缓存策略
第七节 springboot结合rabbitmq实现队列消息
第八节 springboot结合rabbitmq实现异步邮件发送
第九节 利用springboot的aop实现行为日志管理
第十节 利用Quartz实现数据库定时备份
第十一节 springboot配置log输出到本地文件
第十二节 使用flyway对数据库进行版本管理
第十三节 springboot配合VbenAdmin实现前端登录
第十四节 springboot配合VbenAdmin实现用户CURD
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第十六节 springboot 打包vue代码实现前后端统一部署

番外

2.1 数据库设计原则
3.1 配置apifox自动获取登录的token
13.1 springboot 全局捕捉filter中的异常
14.1 springsecurity整合mybatisplus出现isEnable的问题和解决方案

数据库存储引擎用InnoDB,字符集统一用utf8mb4_unicode_ci

表和字段命名 (这里采用laravel框架的推荐)

● 所有数据表名称,一律使用复数的形式,比如:表名为 users 而不是 user
● 当几个表间的字段有关连时,注意外键用单数表名加_id,如 users表中的id与xxx表中的user_id。

主键

每个表必须包含一个名称为 id 的自增主键设置为int,参考这里

外键

设置外键,使用No action,后期去掉外键,具体参考此文

字段结构

● 基于效率的考虑,所有字段均不能为空,即全部NOT NULL,可以设置默认值来代替,比如int设置默认值为0,varchar设置默认为空,没有默认值则表示该字段为必填。时间日期等特殊字段可有例外。
● 预计不会存储非负数的字段,例如各项id、统计数等,必须设置为UNSIGNED类型。UNSIGNED类型比非UNSIGNED类型所能存储的正整数范围大一倍,因此能获得更大的数值存储空间。
● 存储开关、选项数据的字段,通常使用tinyint 非UNSIGNED类型。tinyint作为开关字段时,通常1为打开;0为关闭;-1为特殊数据,高于1的为其他数据。
● 任何类型的数据表,字段空间应当本着足够用,不浪费的原则。比如varchar的设置:email(50),一般来说邮箱的长度会在20-30个字符左右,那么我们可以设置为50个字符;状态值用tinyint,id自增用int等
● created_at,updated_at,deleted_at每个表都含有,使用timestamp (这里采用laravel框架的推荐)

你可能感兴趣的:(svbadmin,数据库,java,开发语言)