資料庫(Database)中的預設欄位(也稱為預設欄位),就是在一般情況下,每個數據表(Table)必須包含的欄位(Field),這類欄位用於滿足特定的數據需求,欄位值的填充或更改一般遵照一定的邏輯要求。預設欄位的設計應該考慮到數據的完整性和一致性,以確保數據的正確與可靠,設計合理的表欄位對於數據的 ...
資料庫(Database)中的預設欄位(也稱為預設欄位),就是在一般情況下,每個數據表(Table)必須包含的欄位(Field),這類欄位用於滿足特定的數據需求,欄位值的填充或更改一般遵照一定的邏輯要求。預設欄位的設計應該考慮到數據的完整性和一致性,以確保數據的正確與可靠,設計合理的表欄位對於數據的有效管理和高效查詢至關重要。
**boot-admin** 是一款採用前後端分離模式、基於 SpringCloud 微服務架構的SaaS後臺管理框架。系統內置基礎管理、許可權管理、運行管理、定義管理、代碼生成器、辦公管理和流程管理7個功能模塊,集成分散式事務 Seata、工作流引擎 Flowable、業務規則引擎 Drools、後臺作業調度框架 Quartz 等,技術棧包括 Mybatis-plus、Redis、Nacos、Seata、Flowable、Drools、Quartz、SpringCloud、Springboot Admin Gateway、Liquibase、jwt、Openfeign、I18n等。
> [項目源碼倉庫github](https://github.com/soft1314/boot-admin)
> [項目源碼倉庫gitee](https://gitee.com/soft1314/boot-admin-vue)
## 欄位命名規範
在設計資料庫表欄位時,應該遵循簡潔明瞭、易於閱讀、有意義的原則,並且應該儘可能遵循以下命名規範,這有助於提高代碼的可讀性和可維護性。
1. 欄位名採用【小寫字母】和【下劃線】的組成,命名簡潔明確;
2. 禁止使用資料庫關鍵字,如:name,time ,datetime,password等;
3. 名稱不易太長,一般不超過三個英文單詞;
4. 名稱一般使用名詞或者動賓短語;
5. 用單數形式表示名稱;
6. 欄位名不允許“IS_XXX”,“SET_XXX”,“GET_XXX”等形式;
## boot-admin 項目中實際使用的預設欄位
### 基本預設欄位
| 序號| 欄位| 名稱| 數據類型| 主鍵| 非空| 預設值|枚舉| 備註說明|
|----|----|----|----|----|----|----|----|----|
|1| GUID| 主鍵| NVARCHAR2(38)| √| √| ||插入時應用程式填充
|2| CREATE_BY| 記錄創建者| NVARCHAR2(100)| |√ |||插入時應用程式填充
|3| CREATE_TIME| 記錄創建時間| DATE| |√ |||插入時應用程式填充
|4| MODIFY_BY| 記錄最後修改者| NVARCHAR2(100)| |√|||應用程式觸發更新
|5| MODIFY_TIME| 記錄最後修改時間| DATE| |√|||應用程式觸發更新
|6| DATESTAMP| 時間戳| DATE| | √| sysdate||資料庫觸發更新
|7| ENABLED| 啟用狀態| NVARCHAR2(1)| | √ || ENABLED|應用程式觸發更新
|8| DELETED| 刪除狀態| NVARCHAR2(1)| | √ || DELETED|邏輯刪除應用程式觸發更新
|9| VERSION| 樂觀鎖| INT| | √
|10| REMARKS| 備註| NVARCHAR2(900)|
|11| TENANT_ID_| 租戶ID| NVARCHAR2(38)| | √|||多租戶數據隔離
### 層次數據額外預設欄位
| 序號| 欄位| 名稱| 數據類型| 主鍵| 非空| 預設值|枚舉| 備註說明|
|----|----|----|----|----|----|----|----|----|
|12| LEAF| 是否末級| NVARCHAR2(1)| | √ || YESNO
|13| PARENT_GUID| 父級GUID| NVARCHAR2(38)| | √
|14| SORT| 順序號| INT| | √
## 總結
預設欄位設計是一個比較重要的問題,需結合項目實際仔細考慮和設計。通過合理地設計預設欄位,我們可以避免不必要的複雜性問題,提高資料庫的性能和可靠性,以滿足更多業務需求。
本文來自博客園,作者:超然樓,轉載請註明原文鏈接:https://www.cnblogs.com/soft1314/p/17416463.html