閱讀導航
一個語句寫十遍,居然大部分時候都是不一樣的。上網找了一些SQL的開發標准文檔,結合項目中的使用,寫一些關於自己SQL的開發標准文檔。
解編碼標准就是一套寫代碼的指南、規則、約定的集合。編碼標准應該足夠靈活並且不會給開發造成負擔。作為一個開發者來說,新接觸一個項目,個人認為最重要的是熟悉當前項目的開發標准。這樣不僅有利於快速熟悉已有代碼和添加新代碼,而且對以后的維護也很重要。
表 Tables、視圖 Views
規則:使用Pascal命名法,並以‘s’ 或者‘es’ 結尾的復數形式。
例子:
表:Products,Customers
視圖:CurrentProductsLists
如果涉及到一組相關的表,那么就是用’_’
例子:
Products_Asia,Products_Europe
在表和視圖命名,還是有一些差異的,比如:以 ‘TB_’、 ‘tbl_’ 作為表名的前綴,以‘VW_’ 作為視圖名的前綴。
存儲過程 Stored Procedures
規則:sp<應用名>_[<組名>_]<行為><表名/邏輯實例>,多個單詞時仍然使用Pascal命名法
例子:
spOrders_GetNewOrders,spProducts_UpdateProduct
也有以 ‘prc_’作為存儲過程前綴
觸發器 Triggers
規則:TR_<表名>_<行為>
例子:
TR_Orders_UpdateProducts
注:不鼓勵使用觸發器
索引 Indexes
規則:IX_<表名>_<使用’_’分隔多列>
例子:
IX_Products_ProductID
主鍵 Primary Keys
規則: PK_<表名>
例子:
PK_Products,PK_Orders
外鍵 Foreign Keys
規則:FK_<表名1>_<表名2>
例子:
FK_Products_Orderss
Defaults
規則:DF_<表名>_<列名>
例子
DF_Products_Quantity
列 Columns
規則:使用Pascal命名法,涉及到其他表的列的話,就使用<表名>列名
例子:
Customers表:ID,Name
Orders表:ID,CustomerID
腳本命名
規則:
存儲過程的腳本名稱以 ’sp_‘ 作為前綴
Schema的腳本名稱以 ’def_‘ 作為前綴
Conversion腳本名稱以 ’conv_‘ 作為前綴(對這個概念還不是很清楚)
Rollback的腳本名稱以 ’rbk_‘ 作為前綴
例子:
sp_GetNewOrders.sql,def_Orders.sql,conv_Orders.sql,rbk_Orders.sql
一般規則
命名中不要用空格,避免使用SQL的關鍵字,如果使用關鍵字,講關鍵字放在’[]‘中(如:[Year]),建議做好所有的列名都是用’[]‘
關於命名規則,如果有補充請留言。
沒有任何規約對數據庫開發的命名是絕對的,只要適合項目,適合開發者,並被大部分開發者所接受,就是好的標准,