一.數據庫:
1. 基本命名規則
表 1. 基本數據庫對象命名
數據庫對象 |
前綴 |
表 (Table) 字段(Column) 視圖 (View) 存儲過程 (Stored procedure) 觸發器(Trigger) 索引(Index) 主鍵(Primary key) 外鍵(Foreign key) Check 約束(Check Constraint) Default 約束(Default Constraint) 用戶定義數據類型 (User-defined data type) 用戶定義函數 (User-defined function) |
tbl_ 無 viw_ prd_ trg_ idx_ pk_ fk_ ck_ df_ udt_ fun_ |
2. 關於命名的約定
變量 (T-SQL 編程中聲明的變量 ) 、過程 ( 存儲過程或觸發器等 ) 、實體 ( 表、字段 ) 應該根據他們所代表的實體意義和進程作用來命名:
表 2. 好的命名 和 不好的命名 范例
好的命名 |
不好的命名 |
@CurrentDate @ActivityCount @EquipmentType prCalculateTotalPrice |
@D @ActNum @ET @prRunCalc |
a. 動賓形式:動詞放前面,名詞放后面。eg:prd_GetProductById
b. 不要使用計算機術語,盡量使用面向公司業務的術。
c. 采用縮寫
如果完全根據上一條的要求,那么根據業務描述的過程名可能會變得很冗長,比如下面:
prCountTotalAmountOfMonthlyPayments ( 計算每月付費的總金額)
prGetParentOrganizationalUnitName ( 獲取上級單位名稱)
Ø 如果可以在字典里找到一個詞的縮寫,就用這個做為縮寫,比如:Mon(Monday)、Dec(December)
Ø 可以刪除單詞元音(詞首字母除外)和每個單詞的重復字母來縮寫一個單詞。比如:Current = Crnt、Address = Adr、Error = Err、Average = Avg
Ø 不要使用有歧異的縮寫(一般是語音上的歧義)。比如b4(before)、xqt(execute),4tran(Fortran)
3. 數據庫命名
根據項目的實際意義來命名
4. 表命名
“tbl_”+ 名稱(名稱盡量使用英文單詞,每個單詞的首字母大寫)
5. 字段命名
表名(去掉前綴)縮寫 + ”_”+ 屬性名稱(每個單詞的首字母大寫)
縮寫:五筆拆字法取字母
一個單詞:取前四個字母
二個單詞:取每個單詞的前兩個字母
三個單詞:取前兩個單詞的首字母和第三個單詞的前兩個字母。
四或四個以上:取前三個單詞的首字母和最后一個單詞的首字母。
6. 主鍵命名
主鍵是針對一個表的, 而不是針對一個字段,因為主鍵是唯一的,一個表只能有一個主鍵。
a. 一般主鍵命名: 主鍵的命名為 pk_TableName。
b. 復合主鍵: ” pk_ ” + “ 字段名 ”
e.g.: Constraint pk_StudentCourse Primary key(Stud_Id, Cour_Id)
主鍵pk_StudentCourse,包含了兩個字段 Stud_Id 和 Cour_Id
7. 外鍵命名
外鍵的命名為 fk_外鍵所在的表名_外鍵引用的表名 。因為外鍵所在的表為從表,所以上式可以寫為 fk_ 從表名_主表名 。
8.Check 約束命名
“ ck_ ” + “ 表名 ” “ _ ” + “ 字段名 ”
e.g.: ck_tbl_Company_Comp_Zip
9.Default 約束命名
“ df_ ” + “ 表名 ” “ _ ” + “ 字段名 ”
e.g.: df_tbl_News_News_Hit
10. 觸發器命名
“ trg_ ” + “ 表名 ” + “ 后綴 ”
a. 前綴- “ trg_ ” , 描述了數據庫對象的類型。
b. 基本部分,描述觸發器所加的表。
c. 后綴(_I、_U、_D),顯示了修改語句(Insert, Update及Delete)
11. 存儲過程命名
命名的規則:見名知意.
“ prd_ ” + “ 說明 ”
說明:動賓結構(動詞+名詞)
e.g.:prd_GetProductById
12. 存儲過程中參數的命名
與其對應的字段名相同,第一個單詞小寫.
二 .程序設計
以微軟 3.0文檔為主
1. 項目名稱
“公司名稱 ” + “項目實際意義名稱 ”
e.g.:qikingYellowPage
2. 頁面命名
規則 :每個單詞的首字母大寫,因為它是類。
a. 父頁面——使用名詞進行描述
b. 子頁面 _列表—— “List” + “父頁面 ”
c. 子頁面 _詳細—— “Show”+ “父頁面 ”
3 頁面傳值
“Id_” + “頁面名稱 ”
4. 錯誤頁面命名
Error.aspx
5. 用戶登錄
UserLogin.aspx
6. 文件夾命名
單詞首字母大寫
單數或復數 ,根據實際需要而定 .
注 :其中一部分參考了 張子陽的《數據庫對象命名參考》 Second Edition http://www.cnblogs.com/JimmyZhang/archive/2007/08/30/875504.html
根據個人的習慣增加、修改了一些。
1 概述
編寫此數據庫命名規范的目的,就是提供較為形象、易於閱讀、簡單明了和原則性一致的數據庫命名方法。從而能夠方便項目相關人員直觀的了解數據庫中的所有對象表示的意義,方便大家交流。
這里主要描述以下的7類常見的數據庫對象:
1. 表(Table)
2. 字段(Fields)
3. 視圖(Views)
4. 存儲過程(Stored Procedures)
5. 索引(Indexes)
6. 關聯(Relationships)
7. 觸發器(Trigger)
這一部分描述了數據庫命名規范的一般性規則。
1.1 字符集合
1. 26個小寫字母(a-z)
2. 26個大寫字母(A-Z)
3. 10個數字字符(0-9)
4. 下划線(_)
1.2 數據庫對象
對象名字由前綴和實際名字組成,前綴和實際名字之間加下划線。
注意:不要在對象名的字符之間出現空格,長度不要超過30個字符。
[對象名字]= [前綴] _ [實際名字]
前綴縮寫規則:使用小寫字母,針對不同的數據庫對象,以下表規范命名。
對象 |
前綴 |
表 |
tb |
視圖 |
vi |
索引 |
idx |
關聯 |
rl |
存儲過程 |
sp |
函數 |
fn |
觸發器 |
tr |
實際名字:盡量能夠描述實體的內容,由單詞或單詞組合組成。采用Camel規則書寫,即:第一個單詞的首字母小寫,而后的每個單詞的首字母都要大寫。
注意:不要以數字和下划線開頭,單詞之間也不要用下划線分隔。還要避免使用保留關鍵字和中文拼音,例如:ui_pk_userId,ui_firstName,ui_lastName和tb_userInfo
1.3 SQL語句書寫規則
SQL語句中所有保留關鍵字均用大寫字母書寫。
本部分詳細描述了ITSM系統中可能涉及的數據庫對象的命名規則。
1.1 表命名規范
[表名]=tb_[實際名字]
對於表來說,有如下的規則:
1. 使用前綴tb;
2. 在表名中盡量少使用復數;
3. 實際名字部分不要使用下划線;
4. 實際名字部分盡量避免縮寫,能明確表明其含義的除外,如:tb_userInfo;
另外,對於從其它數據庫同步獲得數據的表,除了以上的命名規則外,還要在[實際名字]后加下划線,然后再加[數據來源的數據庫名]。
如:tb_assetInfo_croom,表示資產信息表來源於CRoom數據庫。
1.2 字段命名規范
[字段名]=[表名簡寫]_[字段實際名字][字段數據類型縮寫]
表名簡寫部分,由表名的實際名字部分的各個單詞的小寫首字母順序組合構成。
1. 如果字段是主鍵則:[字段實際名字]=pk+_+[實際名字];
2. 如果字段是外鍵則:[字段實際名字]=fk+_+[實際名字];
3. 如果字段是組合鍵則:[字段實際名字]=ck+_+[實際名字];
如:ui_pk_userId, ui_lastName。
另外,對於數據來源於其它數據庫的字段,在上述的字段命名規范的最后加下划線,然后再加[數據來源的數據庫名]。
如:ai_assetName_croom,表示資產名稱字段來源於CRoom數據庫。
注意:如果在多個表中出現表達意義類似的或者相同的字段,這些字段必須具有相同的字段屬性。如:text類型,具有相同的最大長度設置。
[視圖名]=vi_[實際名字]
1. 使用vi作為前綴;
2. 實際名字盡量體現視圖的功能,並且用下划線分隔列出所有相關的表名;
3. 其它命名要求與表的命名要求一致;
1.1 存儲過程命名規范
[存儲過程名]=sp_[實際名字]
1. 使用sp作為前綴;
2. 實際名字中要體現這個存儲過程所要進行的操作(Update,Delete,Insert Into等);
3. 對於存儲過程來說,實際名字組成由操作和表名構成;
如:sp_updateUserInfo。
1.2 索引命名規范
[索引名]=idx[0-9]_[表名簡寫]_[實際名字]
1. 使用idx作為前綴;
2. [0-9]用來區分表的多個索引;
3. [實際名字]是指相關的字段或索引含義;
如:idx0_ui_firstName。
1.3 關聯命名規范
[關聯名]=rl_[主表名簡寫]_[從表名簡寫]
關聯關系是指數據庫表間的外鍵關系。
如:rl_loginInfo_userInfo
1.4 觸發器命名規范
[觸發器名]=tr_[實際名字]
1. 使用tr作為前綴;
2. 實際名字中要描述觸發器的操作(Insert,Update等等);
3. 對於觸發器來說,實際名字由操作和對應的表名構成;
1.5 函數命名規范
[函數名]=fn_[實際名字]
1. 使用fn作為前綴;
2. 實際名字描述該函數具體行為(get,set等等),做到見名釋義;