建表規(guī)則1、【強(qiáng)制】表達(dá)是與否概念的字段,必須使用is_xxx的方式命名,數(shù)據(jù)類型是unsigned tinyint(1表示是,0表示否)。
2、【強(qiáng)制】表名、字段名必須使用小寫字母或數(shù)字,禁止出現(xiàn)數(shù)字開頭,禁止兩個下劃線中間只出現(xiàn)數(shù)字。數(shù)據(jù)庫字段名的修改代表很大,因為無法進(jìn)行預(yù)發(fā)布,所以字段名稱需要慎重考慮。
3、【強(qiáng)制】表名不使用復(fù)數(shù)名詞。
4、【強(qiáng)制】禁用保留字,如desc、range、match、delayed等,請參考Mysql官方保留字。 5、【強(qiáng)制】主鍵索引名為pk字段名;唯一索引名為uk字段名;普通索引名則為idx_字段名
6、【強(qiáng)制】小數(shù)類型為decimal,禁止使用float和double。
7、【強(qiáng)制】如果存儲的字符串的字符長度幾乎相等,使用char定長字符串類型。 8、【強(qiáng)制】varchar是可變長字符串,不預(yù)先分配存儲空間,長度不要超過5000,如果存儲長度大于此值,定義字段類型為text,獨立出來一張表,用主鍵來對應(yīng),避免影響其它字段索引效率。 9、【強(qiáng)制】表必備三個字段:id,gmt_created,gmt_modified。
10、【推薦】表的命名最好是加上”業(yè)務(wù)名稱_表的作用”。
11、【推薦】庫名與應(yīng)用名稱盡量一致。 12、【推薦】如果修改字段含義或?qū)ψ侄伪硎镜臓顟B(tài)追加時,需要及時更新字段注釋。 13、【推薦】字段允許適當(dāng)冗余,以提高查詢性能,但必須考慮數(shù)據(jù)一致。冗余字段應(yīng)遵循:1)不是頻繁修改的字段。2)不是varchar超長字段,更不能是text字段。
14、【推薦】單表行數(shù) 超過500萬行或者表單容量超過2GB,才推薦進(jìn)行分庫分表。 說明:如果預(yù)計三年后的數(shù)據(jù)根本達(dá)不到這個級別,請不要在創(chuàng)建表時就分庫分表。 15、【參考】合適的字符存儲長度,不但節(jié)約數(shù)據(jù)庫表空間、節(jié)約索引存儲,更重要的是提升檢索速度。
備注:來自阿里巴巴Java開發(fā)手冊 |
|