MYSQL 數(shù)據(jù)庫命名設(shè)計規(guī)范
作者: _Approaching 分類: PHP 發(fā)布于: 2012-03-18 22:26 瀏覽:11,091 沒有評論
MYSQL?數(shù)據(jù)庫命名設(shè)計規(guī)范,主要還是命名方面的規(guī)范。
一、數(shù)據(jù)庫涉及字符規(guī)范
1)?采用26個英文字母(區(qū)分大小寫)、0-9十個自然數(shù)及下劃線‘_’組成,共63個字符,除注釋外,不能出現(xiàn)其他字符
2)?命名不得超過30個字符的系統(tǒng)限制,變量名的長度限制為29(不包括標(biāo)識字符@)
3)?數(shù)據(jù)對象、變量的命名都采用英文字符,禁止使用中文命名.絕對不要在對象名的字符之間留空格
4)?小心保留詞,要保證你的字段名沒有和保留詞、數(shù)據(jù)庫系統(tǒng)或者常用訪問方法沖突
5)?保持字段名和類型的一致性,在命名字段并為其指定數(shù)據(jù)類型的時候一定要保證一致性.
二、命名規(guī)范
識別符 | 最大長度(字節(jié)) | 允許的字符 |
數(shù)據(jù)庫 | 64 | [a-z_]?(所有字符均小寫,?字之間用?_?分割) |
表 | 64 | [a-z_]?(所有字符均小寫,?字之間用?_?分割) |
列 | 64 | [a-z_]?(所有字符均小寫,?字之間用?_?分割) |
索引 | 64 | [a-z_]?(所有字符均小寫,?字之間用?_?分割) |
別名 | 255 | [a-z_]?(所有字符均小寫,?字之間用?_?分割) |
1)?數(shù)據(jù)庫、表、列、索引、別名的命名應(yīng)盡可能描述其真實的意思。
2)?統(tǒng)一命名
三、數(shù)據(jù)庫命名規(guī)范
1)?數(shù)據(jù)表一律使用前綴
2)?正式數(shù)據(jù)庫名使用小寫英文以及下劃線組成,盡量說明是那個應(yīng)用或者系統(tǒng)在使用的.比如:ecknow_cn
3)?備份數(shù)據(jù)庫名使用正式庫名加上備份時間組成,如:ecknow_cn_20120316
四、數(shù)據(jù)表命名規(guī)范
1)?數(shù)據(jù)表名使用小寫英文以及下劃線組成,盡量說明是那個應(yīng)用或者系統(tǒng)在使用的。
2)?相關(guān)應(yīng)用的數(shù)據(jù)表使用同一前綴
如論壇的表使用bbs_前綴,博客的數(shù)據(jù)表使用blog_前綴,前綴名稱一般不超過5字比如:
bbs_user????bbs_group???blog_userspace
3)?備份數(shù)據(jù)表名使用正式表名加上備份時間組成,如:
bbs_user_20120303??????bbs_group_20120303??????blog_userspace_20120303
五、字段命名規(guī)范
1)?字段名稱使用單詞組合完成,字段名全部小寫.如?bbs_user?表的字段:?userid???bbs_user_name?表中的字段?userpassword
2)?表與表之間的相關(guān)聯(lián)字段要用統(tǒng)一名稱,如?bbs_user?表里面的?userid?和?bbs_group?表里面的?userid?相對應(yīng)
六、字段類型規(guī)范規(guī)則
1)?用盡量少的存儲空間來存數(shù)一個字段的數(shù)據(jù).
比如能用int的就不用char或者varchar,能用tinyint的就不用int,能用varchar(20)的就不用varchar(255)
2)?時間戳字段盡量用int型
七、索引使用原則:
1)?邏輯主鍵使用唯一的成組索引,對系統(tǒng)鍵(作為存儲過程)采用唯一的非成組索引,對任何外鍵列采用非成組索引.考慮數(shù)據(jù)庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫.
2)?大多數(shù)數(shù)據(jù)庫都索引自動創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它們也是經(jīng)常使用的鍵,比如運行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上.
3)?不要索引blob/text等字段,不要索引大型字段(有很多字符),這樣作會讓索引占用太多的存儲空間.
4)?不要索引常用的小型表不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了.對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間.
八、SQL語句規(guī)范
1)?所有sql關(guān)鍵詞全部大寫,比如SELECT、UPDATE、FROM、ORDER?BY等
2)?所有的表名和庫名及字段名都要用“包含。
本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。
本文永久鏈接: http://yjfs.org.cn/mysql-database-named-design-specifications.html