1.級(jí)別:[強(qiáng)制] 表達(dá)是與否概念的字段,必須使用is_*** 的方式命名,數(shù)據(jù)類型是 unsigned tinyint ( 1表示是 , 0 表示否)
說明:任何字段如果為非負(fù)數(shù),必須是 unsigned.
正例:表達(dá)邏輯刪除的字段名 is_deleted ,1 表示刪除,0 表示未刪除。
2.級(jí)別:[強(qiáng)制] 表名、字段名必須使用小寫字母或數(shù)字 , 禁止出現(xiàn)數(shù)字開頭,禁止兩個(gè)下劃線中間只出現(xiàn)數(shù)字。數(shù)據(jù)庫字段名的修改代價(jià)很大,因?yàn)闊o法進(jìn)行預(yù)發(fā)布,所以字段名稱要慎重考慮。
說明:mysql 在 windows 下不區(qū)分大小寫,但在linux 下默認(rèn)是區(qū)分大小寫。因此,數(shù)據(jù)庫名,表名,字段名,都不允許出現(xiàn)大寫字母。
正例: qy_admin ,pay_config, leve3_name
反例:qyAdmin,payConfig,leve_3_name
3.級(jí)別:[強(qiáng)制] 表名不使用復(fù)數(shù)名詞。
說明:mysql中表名應(yīng)該僅僅表示表里的實(shí)體內(nèi)容,不應(yīng)該表示實(shí)體數(shù)據(jù),對(duì)應(yīng)于DO類名也是單數(shù)形式,符合表達(dá)習(xí)慣。
4.級(jí)別:[強(qiáng)制] 禁用保留字,如 desc ,range ,match,delayed 等。參考mysql 官方保留字。
5.級(jí)別:[強(qiáng)制] 主鍵索引名為 pk_ 字段名;唯一索引名為 uk_字段名;普通索引名則為 idx_字段名。
說明:pk_ 即為 primary key ; uk_ 即 unique key; idx_ 即 index 的簡(jiǎn)稱。
6.級(jí)別:[強(qiáng)制] 小數(shù)類型為 decimal,禁止使用 float 和 double。
說明:mysql 的 float ,double 在存儲(chǔ)的時(shí)候,存在精度損失的問題,很可能在值的比較時(shí),得到不正確的結(jié)果。如果存儲(chǔ)的數(shù)據(jù)范圍超過decimal 的范圍,建議將數(shù)據(jù)拆成整數(shù)和小數(shù)分開存儲(chǔ)。
7.級(jí)別:[強(qiáng)制] 如果存儲(chǔ)的字符串長度幾乎相等,使用 char 定長字符串類型。
8.級(jí)別:[強(qiáng)制] vaarchar 是可變長字符呂,不預(yù)先分配存儲(chǔ)空間,長度不要超過5000,如果存儲(chǔ)長度大于此值,定義字段類型為 text ,獨(dú)立出來一張表,用主鍵來以應(yīng),避免影響其它字段索引效率。
9.級(jí)別:[強(qiáng)制] 表必備三個(gè)字段:id, create_time,updated_time。
說明:id必為主鍵,類型為 unsigned bigint, 支持的數(shù)字大小為19位。單表時(shí)自增,步長為1. create_time, updated_time 類型為timestamp 主動(dòng)創(chuàng)建,另一個(gè)是表示被動(dòng)更新。
10.級(jí)別:[推薦] 表的命名最好是加上 "業(yè)務(wù)名稱_表的作用"。
說明:這樣能清楚的知道每個(gè)表的作用。
正例: user_task ,pay_config, force_extra
11.級(jí)別:[推薦] 庫名與應(yīng)用名稱盡量一致。
12.級(jí)別:[推薦] 如果修改字段含義或?qū)ψ侄伪硎镜臓顟B(tài)追加時(shí),需要及時(shí)更新字段注釋。
13.級(jí)別:[推薦] 字段允許適當(dāng)冗余,以提高查詢性能,但必須考慮數(shù)據(jù)一致,冗余字段應(yīng)遵循:
1)不是頻繁修改的字段。
2)不是varchar 超長字段,更不能是 text 字段。
正例: 商品類目名稱使用頻率高,字段長度短,名稱基本一成不變,可在相關(guān)聯(lián)的表中冗余存儲(chǔ)類目名稱,避免關(guān)聯(lián)查詢。
14.級(jí)別:[推薦] 單表行數(shù)超過500萬行或者單表容量超過2GB,才推薦進(jìn)行分庫分表。
說明:mysql 如果預(yù)計(jì)三年后的數(shù)據(jù)量根本達(dá)不到這個(gè)級(jí)別,請(qǐng)不要在創(chuàng)建表時(shí)就分庫分表。
15.級(jí)別[參考] 合適的字符存儲(chǔ)長度,不但節(jié)約數(shù)據(jù)庫表空間,節(jié)約索引存儲(chǔ),更重要的是提升檢索速度。。