1. 基本命名規則html
表 1. 基本數據庫對象命名數據庫
數據庫對象編程 |
前綴函數 |
表 (Table)ui 字段(Column)spa 視圖 (View)設計 存儲過程 (Stored procedure)xml 觸發器(Trigger)htm 索引(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
根據我的的習慣增長、修改了一些。
編寫此數據庫命名規範的目的,就是提供較爲形象、易於閱讀、簡單明瞭和原則性一致的數據庫命名方法。從而可以方便項目相關人員直觀的瞭解數據庫中的全部對象表示的意義,方便你們交流。
這裏主要描述如下的7類常見的數據庫對象:
1. 表(Table)
2. 字段(Fields)
3. 視圖(Views)
4. 存儲過程(Stored Procedures)
5. 索引(Indexes)
6. 關聯(Relationships)
7. 觸發器(Trigger)
這一部分描述了數據庫命名規範的通常性規則。
1. 26個小寫字母(a-z)
2. 26個大寫字母(A-Z)
3. 10個數字字符(0-9)
4. 下劃線(_)
對象名字由前綴和實際名字組成,前綴和實際名字之間加下劃線。
注意:不要在對象名的字符之間出現空格,長度不要超過30個字符。
[對象名字]= [前綴] _ [實際名字]
前綴縮寫規則:使用小寫字母,針對不一樣的數據庫對象,如下表規範命名。
對象 |
前綴 |
表 |
tb |
視圖 |
vi |
索引 |
idx |
關聯 |
rl |
存儲過程 |
sp |
函數 |
fn |
觸發器 |
tr |
實際名字:儘可能可以描述實體的內容,由單詞或單詞組合組成。採用Camel規則書寫,即:第一個單詞的首字母小寫,然後的每一個單詞的首字母都要大寫。
注意:不要以數字和下劃線開頭,單詞之間也不要用下劃線分隔。還要避免使用保留關鍵字和中文拼音,例如:ui_pk_userId,ui_firstName,ui_lastName和tb_userInfo
SQL語句中全部保留關鍵字均用大寫字母書寫。
本部分詳細描述了ITSM系統中可能涉及的數據庫對象的命名規則。
[表名]=tb_[實際名字]
對於表來講,有以下的規則:
1. 使用前綴tb;
2. 在表名中儘可能少使用複數;
3. 實際名字部分不要使用下劃線;
4. 實際名字部分儘可能避免縮寫,能明確代表其含義的除外,如:tb_userInfo;
另外,對於從其它數據庫同步得到數據的表,除了以上的命名規則外,還要在[實際名字]後加下劃線,而後再加[數據來源的數據庫名]。
如:tb_assetInfo_croom,表示資產信息表來源於CRoom數據庫。
[字段名]=[表名簡寫]_[字段實際名字][字段數據類型縮寫]
表名簡寫部分,由表名的實際名字部分的各個單詞的小寫首字母順序組合構成。
1. 若是字段是主鍵則:[字段實際名字]=pk+_+[實際名字];
2. 若是字段是外鍵則:[字段實際名字]=fk+_+[實際名字];
3. 若是字段是組合鍵則:[字段實際名字]=ck+_+[實際名字];
如:ui_pk_userId, ui_lastName。
另外,對於數據來源於其它數據庫的字段,在上述的字段命名規範的最後加下劃線,而後再加[數據來源的數據庫名]。
如:ai_assetName_croom,表示資產名稱字段來源於CRoom數據庫。
注意:若是在多個表中出現表達意義相似的或者相同的字段,這些字段必須具備相同的字段屬性。如:text類型,具備相同的最大長度設置。
[視圖名]=vi_[實際名字]
1. 使用vi做爲前綴;
2. 實際名字儘可能體現視圖的功能,而且用下劃線分隔列出全部相關的表名;
3. 其它命名要求與表的命名要求一致;
[存儲過程名]=sp_[實際名字]
1. 使用sp做爲前綴;
2. 實際名字中要體現這個存儲過程所要進行的操做(Update,Delete,Insert Into等);
3. 對於存儲過程來講,實際名字組成由操做和表名構成;
如:sp_updateUserInfo。
[索引名]=idx[0-9]_[表名簡寫]_[實際名字]
1. 使用idx做爲前綴;
2. [0-9]用來區分表的多個索引;
3. [實際名字]是指相關的字段或索引含義;
如:idx0_ui_firstName。
[關聯名]=rl_[主表名簡寫]_[從表名簡寫]
關聯關係是指數據庫表間的外鍵關係。
如:rl_loginInfo_userInfo
[觸發器名]=tr_[實際名字]
1. 使用tr做爲前綴;
2. 實際名字中要描述觸發器的操做(Insert,Update等等);
3. 對於觸發器來講,實際名字由操做和對應的表名構成;
[函數名]=fn_[實際名字]
1. 使用fn做爲前綴;
2. 實際名字描述該函數具體行爲(get,set等等),作到見名釋義;