1 【強制】必須使用innodb儲存引擎
2 【強制】必須使用utf8字符集,是否有表情考慮使用utf8mb4
3 【強制】資料表、資料字段必須加入中文注釋
4 【強制】禁止儲存大檔案或者大**
6【強制】表必備字段:id, create_id,create_time,update_id, update_time,dept_id,dept_code,tenant_id。 說明:其中id必為主鍵,型別為unsigned bigint、單錶時自增、步長為1。create_time, update_time 的型別均為 date_time 型別,update_id,create_id為建立人和修改人的id,dept_id為資料歸屬部門id,dept_code為資料歸屬部門code,tenant_id為租戶id。
7 【強制】庫名、表名、欄位名:小寫,下劃線風格,不超過32個字元,必須見名知意,禁止拼音英文混用
8 【強制】表名必須使用子系統加模組作為字首例如:base_sys_user,crm_customer_main,wms_product_main
9 【強制】業務表必須有主鍵,沒有特殊原因就是自增主鍵,關聯表可以沒有主鍵
10 表間關係盡量不做物理約束
11 【強制】禁止在表中做預留字段
9【強制】在 varchar 欄位上建立索引時,必須指定索引長度,沒必要對全欄位建立索引,根據 實際文字區分度決定索引長度。
10 禁止在更新十分頻繁、區分度不高的屬性上建立索引,例如性別
a)更新會變更b+樹,更新頻繁的字段建立索引會大大降低資料庫效能
b)「性別」這種區分度不大的屬性,建立索引是沒有什麼意義的,不能有效過濾資料,效能與全表掃瞄類似
11 建立組合索引,必須把區分度高的字段放在前面
12 單索引欄位數不允許超過5個
13 【強制】頁面搜尋嚴禁左模糊或者全模糊,如果需要請走搜尋引擎來解決。
禁止使用 like 『%***%』, 改為 like '***%'
14 【推薦】建組合索引的時候,區分度最高的在最左邊。
15 【強制】不要使用 count(列名)或 count(常量)來替代 count(),count()就是 sql92 定義 的標準統計行數的語法,跟資料庫無關,跟 null 和非 null 無關。
說明:count(*)會統計值為 null 的行,而 count(列名)不會統計此列為 null 值的行。
16 【強制】不得使用外來鍵與級聯,一切外來鍵概念必須在應用層解決。
17【強制】禁止(極少)用儲存過程、檢視、觸發器、event儲存過程難以除錯和擴充套件,更沒有移植性。影響效能,cpu能力上移
*18 禁止使用select ,只獲取必要的字段,需要顯示說明列屬性
19 禁止使用屬性隱式轉換全是數字的字元欄位也要加上引號
20 禁止在where條件的屬性上使用函式或者表示式會導致全表掃瞄
21 禁止大表使用join查詢,禁止大表使用子查詢
模組中盡量少用。需要 join 的字段,資料型別保持絕對一致;多表關聯查詢 時,保證被關聯的字段需要有索引。
其他模組中的表禁止join,必須通過介面獲取資料
22【強制】在表查詢中,一律不要使用 * 作為查詢的字段列表,需要哪些字段必須明確寫明。
說明:1)增加查詢分析器解析成本。2)增減字段容易與 resultmap 配置不一致。
23 pojo 類的 boolean 屬性不能加 is,而資料庫字段必須加 is_,要求在 resultmap 中 進行欄位與屬性之間的對映。
24 【強制】不要用 resultclass 當返回引數,即使所有類屬性名與資料庫字段一一對應,也需 要定義;反過來,每乙個表也必然有乙個與之對應。
說明:配置對映關係,使字段與 do 類解耦,方便維護。
25 【強制】xml 配置中引數注意使用:#{},#param# 不要使用${} 此種方式容易出現 sql 注 入。
26【強制】ibatis自帶的queryforlist(string statementname,int start,int size)不推 薦使用。
27 【強制】不允許直接拿 hashmap 與 hashtable 作為查詢結果集的輸出。
28【強制】更新資料表記錄時,必須同時更新記錄對應的 gmt_modified 字段值為當前時間。
mysql資料庫規約 MySQL資料庫規約
8 字段允許適當冗餘,以提高查詢效能,但必須考慮資料一致。冗餘欄位應遵循 1 不是頻繁修改的字段。2 不是 varchar 超長字段,更不能是 text 字段。9 單錶行數超過 500 萬行或者單錶容量超過 2gb,才推薦進行分庫分表。二 索引規約 1 業務上具有唯一特性的字段,即使是多個欄位的組合...
MySQL資料庫規約
1 表達是與否概念的字段,必須使用 is 的方式命名,資料型別是 unsigned tinyint 1 表示是,0 表示否 2 表名 欄位名必須使用小寫字母或數字,禁止出現數字開頭,禁止兩個下劃線中間只出現數字。資料庫欄位名的修改代價很大,因為無法進行預發布,所以欄位名稱需要慎重考慮。3 表名不使用...
資料庫索引規約
本文學習自阿里巴巴編碼規範,只作為學習筆記,如需詳細了解請自行檢視阿里編碼規範 1.業務上具有唯一特性的字段,哪怕是多個欄位的組合,也必須要建成唯一索引。2.需要join的字段,資料型別必須絕對一致,多表關聯查詢時,保證被關聯到的表需要有索引。即使雙表 join 也要注意表索引 sql 效能 3.在...