介绍
项目名: 一生一品项目管理系统(stupro)
使用技术
框架
- Spring Boot
项目的基础框架,想必不用我多说了吧 - MyBatis Plus
基于持久层框架MyBatis的增强工具,有强大的代码生成器,自动填充字段等功能 - Spring Security OAuth2
系统使用OAuth2 实现了用户名密码登录,使用Redis 来存储JWT token,支持token的刷新 - Spring Data JPA
持久层框架,Spring 全家桶的一员,用于访问各类SQL或NoSQL数据库。使用它的原因是因为项目中还应有了MongoDB数据库。 - Activiti/Flowable
两个都是工作流引擎,项目中使用的是Flowable。因为Flowable是Activiti 6.0的Fork,
所以,学习过Activiti的可以无缝切换到Flowable
数据库
- MySQL
用来存储绝大多数数据 - MongoDB
存储数据量大且对错误不敏感的数据
其他
- Maven
- Git
- Lombok
数据库设计规范
建表规范
- 每张表都要加前缀“stupro_”,与框架产生的表(如:activiti产生的表的前缀是“ACT_”)相区分
通用字段说明
数据库的每张表(包括MongoDB)都包含了以下字段:
- id
- 主键,36位的UUID,系统自动生成
- Java类型:String
- MySQL类型:varchar(36)
- MongoDB未知(反正MongoDB又不需要建表,直接用JPA操作就完事了)
- sort_id
- 专门用于排序的id,由系统使用雪花算法自动生成。与create_datetime 配合使用,以解决create_datetime在高并发的情况下产生相同值的情况
- Java类型:Long
- MySQL类型:bigint(36)
- MongoDB未知,理由同上
- create_by
- 添加本条记录的用户名(username),username便于直观的查找
- Java类型:String
- MySQL类型:varchar(36)
- MongoDB未知,理由同上
- create_datetime
- 添加记录的时间,系统自动生成
- Java类型:LocalDateTime。
- MySQL类型:datetime(0)
- MongoDB未知,理由同上
- update_by
- 修改本条的时间,系统自动生成
- Java类型:LocalDateTime。
- MySQL类型:datetime(0)
- MongoDB未知,理由同上
- update_datetime
- 修改本条的时间,系统自动生成
- Java类型:LocalDateTime。
- MySQL类型:datetime(0)
- MongoDB未知,理由同上
- deleted
- 逻辑删除
- Java类型:String
- MySQL类型:varchar(2)
- MongoDB未知,理由同上