mysql数据库开发规范_开发规范——MYSQL数据库
數據庫規范
這里主要針對mysql數據庫,其他數據庫也可以借鑒
表
1、統一使用表命名規范
表名規范:分層+項目名縮寫+實體名(小寫)【+下劃線+實體名+rel】
例子
表名:bc_user
分層:
基礎服務:b
綜合服務:s
webapp服務:a
表的種類:
映射實體的表:前綴_實體名(多個單詞用下劃線隔開)
關系表:前綴_實體名1_實體名2_后綴(多個單詞用下劃線隔開)
2、統一使用Innodb引擎
3、【推薦】表名不要關聯其他表名的信息
表名含義項目范圍獨立
索引
1、業務上具有唯一特性的字段,即使是組合字段,必須使用唯一索引。
如果沒有添加唯一索引,即使在應用層做了非常完善的校驗和驗證,也無法避免臟數據的產生。
2、唯一索引命名:uk_字段名普通索引命名:idx_字段名
3、禁止對text定義索引
如果有對這類字段搜索的需求,可以通過全文索引方法來實現功能。
4、【推薦】varchar定義索引長度。長度統一10的倍數,不超過50;
一般有搜索的話,用戶也不會輸入太多字
字段
1、主鍵禁止使用自增。
不同庫同步數據的時候,會出問題。
2、字段全部禁止為空。
為空的話,很容易在使用的時候出現npe異常
3、禁止使用外鍵,只能在概念和應用層次使用外鍵
影響插入性能
4、禁止使用枚舉、集合類型
5、禁止在數據庫使用blog存文件。
數據庫只存相對的url路徑
6、類型使用規范
布爾:bit
時間(精確到天):date
時間(精確到秒):datetime
浮點:deciaml
字符串(長度小于10或者長度大于10但是長度相同):char
字符串(長度為10~5000,長度不等):varchar
字符串(富文本):text
7、必有字段
主鍵
創建時間
修改時間
假刪狀態
8、【推薦】可以審核添加冗余數據,這樣可以快速查詢數據。
冗余類型:
+ 技術器、計分器等統計數據
+ 一旦成功不會修改的數據
9、【推薦】字段順序:自描述-》關聯其他表的描述-》功能性-》必有字段
注釋
1、表名或者字段注釋的格式:直譯【(補充說明)】
2、禁止帶“表”、“數據”等多余的字眼
3、如果類型字段,有變更,同步注釋
sql
1、禁止使用select *
數據庫查看執行時間性能沒有影響。但是返回的數據量會變大,對網絡開銷有影響,最終還是影響性能,而且會影響數據庫的二進制日志
2、使用select count(*)
select count(name)不記錄null的行數,而且官方澄清count(*)不影響性能
3、使用sum函數時,必須使用IFNULL(sum(),0)
如果sum函數沒有查詢結果返回null,容易出npe
4、禁止出現or。可以使用in或者unit all來替換
5、order by的場景,創建索引時order by后面的字段也必須是組合索引的一部分,并且放在索引順序的最后,避免file_sort
6、創建組合索引時,區分度最高的放在最左邊
where a=? and b=? 如果a幾乎接近唯一,那么只要建idx_a即可。
7、【推薦】禁止更新表的所有字段,必須制定更新的字段
總結
以上是生活随笔為你收集整理的mysql数据库开发规范_开发规范——MYSQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java流实例_java流汇总以及使用实
- 下一篇: python右对齐函数_python右对