1、數據庫命名規範html
採用26個英文字母(區分大小寫)和0-9的天然數(常常不須要)加上下劃線'_'組成,命名簡潔明確,多個單詞用下劃線'_'分隔,一個項目一個數據庫,多個項目慎用同一個數據庫sql
2、數據庫表命名規範數據庫
2.1數據表命名規範ide
(1)採用26個英文字母(區分大小寫)和0-9的天然數(常常不須要)加上下劃線'_'組成,命名簡潔明確,多個單詞用下劃線'_'分隔函數
(2)所有小寫命名,禁止出現大寫post
(3)禁止使用數據庫關鍵字,如:name,time ,datetime,password等性能
(4)表名稱不該該取得太長(通常不超過三個英文單詞)優化
(5)表的名稱通常使用名詞或者動賓短語ui
(6)用單數形式表示名稱,例如,使用 employee,而不是 employees編碼
明細表的名稱爲:主表的名稱+字符dtl(detail縮寫)
例如:採購定單的名稱爲:po_order,則採購定單的明細表爲:po_orderdtl
(7)表必須填寫描述信息(使用SQL語句建表時)
2.2命名規範
①模塊_+功能點 示例:alllive_log alllive_category
②功能點 示例:live message
③通用表 示例:all_user
2.3待優化命名示例
①冗餘:
錯誤示例:yy_alllive_video_recomment yy_alllive_open_close_log
說明:去除項目名,簡化表名長度,去」yy_」
②相同類別表命名存在差別,管理性差
錯誤示例:yy_all_live_category yy_alllive_comment_user
說明:去除項目名,統一命名規則,均爲」yy_alllive_」開頭便可
③命名格式存在差別
錯誤示例:yy_showfriend yy_user_getpoints yy_live_program_get
說明:去除項目名,統一命名規則,動賓短語分離且動賓邏輯順序統一
3、數據庫字段命名規範
3.1字段命名規範
(1)採用26個英文字母(區分大小寫)和0-9的天然數(常常不須要)加上下劃線'_'組成,命名簡潔明確,多個單詞用下劃線'_'分隔
(2)所有小寫命名,禁止出現大寫
(3)字段必須填寫描述信息
(4)禁止使用數據庫關鍵字,如:name,time ,datetime password 等
(5)字段名稱通常採用名詞或動賓短語
(6)採用字段的名稱必須是易於理解,通常不超過三個英文單詞
(7)在命名錶的列時,不要重複表的名稱
例如,在名employe的表中避免使用名爲employee_lastname的字段
(8)不要在列的名稱中包含數據類型
(9)字段命名使用完整名稱,禁止縮寫
3.2命名規範
①名詞 示例:user_id user_name sex
②動賓短語 示例:is_friend is_good
3.3待優化命名示例
①大小寫規則不統一
錯誤示例:user_id houseID
說明:使用統一規則,修改成」user_id」,」house_id」
②加下劃線規則不統一
錯誤示例:username userid isfriend isgood
說明:使用下劃線進行分類,提高可性,方便管理,修改成」user_name」,」user_id」,」is_friend」,」is_good」
③字段表示不明確
錯誤示例:uid pid
說明:使用完整名稱,提升可讀性,修改成」user_id」,」person_id」
3.4字段類型規範
(1)全部字段在設計時,除如下數據類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必須有默認值,字符型的默認值爲一個空字符值串’’,數值型的默認值爲數值0,邏輯型的默認值爲數值0
(2)系統中全部邏輯型中數值0表示爲「假」,數值1表示爲「真」,datetime、smalldatetime類型的字段沒有默認值,必須爲NULL
(3)用盡可能少的存儲空間來存儲一個字段的數據
使用int就不要使用varchar、char,
用varchar(16)就不要使varchar(256)
IP地址使用int類型
固定長度的類型最好使用char,例如:郵編(postcode)
能使用tinyint就不要使用smallint,int
最好給每一個字段一個默認值,最好不能爲null
(4)用合適的字段類型節約空間
字符轉化爲數字(能轉化的最好轉化,一樣節約空間、提升查詢性能)
避免使用NULL字段(NULL字段很難查詢優化、NULL字段的索引須要額外空間、NULL字段的複合索引無效)
少用text類型(儘可能使用varchar代替text字段)
3.5數據庫中每一個字段的規範描述
(1)儘可能遵照第三範式的標準(3NF)
表內的每個值只能被表達一次
表內的每一行都應當被惟一的標示
表內不該該存儲依賴於其餘鍵的非鍵信息
(2)若是字段事實上是與其它表的關鍵字相關聯而未設計爲外鍵引用,需建索引
(3)若是字段與其它表的字段相關聯,需建索引
(4)若是字段需作模糊查詢以外的條件查詢,需建索引
(5)除了主關鍵字容許創建簇索引外,其它字段所建索引必須爲非簇索引
4、SQL語言編碼規範
4.1大小寫規範
(1)全部關鍵字必須大寫,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等
(2)全部函數及其參數中除用戶變量之外的部分必須大寫
(3)在定義變量時用到的數據類型必須小寫
4.2註釋
註釋能夠包含在批處理中,在觸發器、存儲過程當中包含描述性註釋將大大增長文本的可讀性和可維護性,本規範建議:
(1)註釋以英文爲主,實際應用中,發現以中文註釋的SQL語句版本在英文環境中不可用,爲避免後續版本執行過程當中發生某些異常錯誤,建議使用英文註釋
(2)註釋儘量詳細、全面建立每一數據對象前,應具體描述該對象的功能和用途,傳入參數的含義應該有所說明,若是取值範圍肯定,也應該一併說明,取值有特定含義的變量(如boolean類型變量),應給出每一個值的含義
(3)註釋語法:單行註釋、多行註釋
單行註釋:註釋前有兩個連字符(--)對變量、條件子句能夠採用該類註釋
多行註釋:符號之間的內容爲註釋內容,對某項完整的操做建議使用該類註釋
(4)註釋簡潔,同時應描述清晰
(5)函數註釋:
編寫函數文本--如觸發器、存儲過程以及其餘數據對象--時,必須爲每一個函數增長適當註釋,該註釋以多行註釋爲主,主要結構以下:
CREATE PROCEDURE sp_xxx