介紹
項目名: 一生一品項目管理系統(stupro)
使用技術
框架
- Spring Boot
項目的基礎框架,想必不用我多說了吧 - MyBatis Plus
基於持久層框架MyBatis的增強工具,有強大的代碼生成器,自動填充字段等功能 - 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未知,理由同上