mysql schema命名规范_数据库设计 命名及编码规范
http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx
引用
一、綜述
命名和編碼過程中,定義有意義的名稱,以易于理解、方便書寫為原則。
(1)避免使用中文,盡量使用全拼音或全英文,以方便國際化;
(2)避免拼音和英文的中西合璧,如:CAOZUO_TIME;
(3)避免在命名中包括空格及特殊字符;
(4)避免使用保留字;
(5)避免名稱太長,注意縮寫的使用,縮寫規則為單詞前4個字母,合成詞取每個單詞前兩位組成4位縮寫,對于約定束成的縮寫不必遵守取4位的規則,比如:NO代表NUMBER,如果取NUMB反而讓人費解。
二、命名規范
2.1、數據庫
前綴:使用與數據庫業務對象相對應的英文單詞或英文縮寫;
名稱:使用與數據庫業務性質相對應的英文單詞或英文縮寫;
舉例:BHO_STATISTIC
注意:
(1)名稱一律使用單數形式;
(2)動詞一律保持動賓結構,通常增、刪、改、查、統計的動作,使用ADD、DEL、UPD、QRY、STA作為縮寫,以降低命名的長度;
2.2、數據庫文件及文件組
(1)數據庫文件存放路徑:D:\DATA、E:\LOG;
(2)數據庫文件組命名:主文件組 PRIMARY,次文件組 FG_業務模塊_數據分類,如:FG_CONFIG_ACCOUNT;
(3)數據庫主數據文件命名:DBNAME_DATA.MDF,如:BHO_STATISTIC_DATA.MDF;
(4)數據庫從數據文件命名:DBNAME_DATA_XX.NDF,XX為兩位整數,不足兩位第1位用0補齊,如:BHO_STATISTIC_DATA_01.NDF;
(5)數據庫日志文件命名:DBNAME_LOG_XX.LDF,XX為兩位整數,不足兩位第1位用0補齊,如:BHO_STATISTIC_LOG_01.LDF;
2.3、數據庫邏輯對象
2.3.1、架構
通常使用業務模塊名作為架構名,如:配置模塊(CONFIG)。
(1)方便數據庫對象分類;
(2)方便權限管理。
2.3.2、表
前綴、名稱、后綴均以下劃線(_)間隔,字母均使用大寫。
(1) 實體表
前綴:ETB(E表示ENTITY)
名稱:架構名.ETB_名詞
舉例:PUBLIC.ETB_LEAGUE
(2)關系表
前綴:RTB(R表示RELATION)
名稱:架構名.RTB_實體英文單詞縮寫_實體英文單詞縮寫[_實體英文單詞縮寫…]
舉例:PUBLIC.RTB_HOPA_LEAG(即CONFIG.RTB_HOMEPAGE_LEAGUE)
(3)事實表
前綴:FACT
名稱:架構名.FACT_動賓結構
舉例:CONFIG.FACT _ADD_USER
(4)報表
前綴:RPT(REPORT的簡寫)
名稱:架構名.RPT_動賓結構
舉例:CONFIG.RPT_ ADD_USER
(5)字段
名稱:詞_詞,全部大寫
舉例:FIRST_NAME
注意:
a)避免字段名中包含表名,如:EMPLOYEE_FIRST_NAME;
b)避免使用數字,如:COLUMN_1、COLUMN_2;
c)避免字段名包含數據類型,如:COLUMN_CHAR、COLUMN_NUMBER;
c)冗余字段可考慮加上前綴X或R,如:X_COL_NAME
(6)索引
前綴:IX,用兩個字母是為了和約束一致起來,約束:PK、FK、UQ、CK、DF、NL;
名稱:表名_列名1[_列名2…],為避免索引名太長,也可以使用表名_N,N為自然數;
舉例:IX_ CONFIG _FACT_ADD_USER_FACT_ID、IX_ CONFIG _FACT_ADD_USER_1;
2.3.3、視圖
前綴:V
名稱:架構名.V_動賓結構
舉例:CONFIG .V_QRY_USER
2.3.4、存儲過程
前綴:P
名稱:架構名.P_動賓結構
舉例:CONFIG .P_ADD_USER
2.3.5、觸發器
前綴:Tr
名稱:架構名.Tr_動賓結構
舉例:CONFIG.Tr_ADD_USER
2.3.6、函數
前綴:F
名稱:架構名.F_動賓結構
舉例:CONFIG.F_QRY_USER
其他未列舉的數據庫邏輯對象,可參考以上規則進行命名。
三、編碼規范
3.1、外部參數
(1)對使用頻繁、關鍵性的變量,請在定義時加上注釋標明其含義;
(2)盡量少用單字母變量,禁止使用諸如i、j等作為變量名;
(3)注意小寫字母l和數字1之間的區別使用;
(4)參數命名約定:@名稱_名稱,變量名稱全部用小寫,以示與表中大寫字段區別,如:@user_name;
3.2、內部參數
同外部參數
3.3、關鍵字及系統內置對象
(1)關鍵字、系統函數、系統變量等,全部大寫;
(2)數據類型使用小寫,以與參數一致;
3.4、代碼塊
(1)使用TAB來縮進,設置TAB = 4,并將TAB自動轉換為空格;
(2)每行控制在列邊界80以內;
(3)注釋全部另起一行,不要和代碼合在一行,單行注釋采用--,,多行注釋采用/* 注釋內容 */。另外注釋內容盡量使用英文,中文注釋在英文版的DBMS中可能會導致錯誤。
(4)多個Begin…End語句嵌套時采用如下方式
BEGIN /*1*/
...
BEGIN /*1.1*/
...
BEGIN /*1.1.1*/
...
END /*1.1.1*/
BEGIN /*1.1.2*/
...
END /*1.1.2*/
END /*1.1*/
END /*1*/
其中1表示第一級嵌套,1.1表示第二級嵌套,1.1.1表示第三級嵌套,1.1.2表示第三級的第二個嵌套… ,一般不要超過三級嵌套。
(5)在保證縮進格式的前提下,可以通過對齊關鍵字來提高代碼的可讀性,如下:
SELECT *
FROM SCHEMA_NAME.TABLE_NAME
WHERE COL_NAME = 'XXX'
3.5、可編程對象
3.5.1、代碼模板
推薦使用SQL? SERVER開發工具中的模板來生成格式,再根據個人習慣進行適當修改即可。
3.5.2、全文注釋
/******************************************************************
用?? 途:
作?? 者:
創建日期:
調用舉例:
修訂記錄:
? :修改內容簡要說明
******************************************************************/
/******************************************************************
Function:
Author:
Createdate:
execute e.g:
modify record:
:description
******************************************************************/
3.5.3、返回值
存儲過程中的返回值,分兩種:RETURN和OUTPUT參數。
(1)RETURN值作為存儲過程的執行狀態,0為正常結束,非0為異常結束。
(2)使用OUTPUT參數返回錯誤編號和錯誤文本,以供彈出提示;
分享到:
2011-01-21 13:14
瀏覽 1325
評論
總結
以上是生活随笔為你收集整理的mysql schema命名规范_数据库设计 命名及编码规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: robot连PCwifi、PC开Shel
- 下一篇: stl—map