數據庫命名規範

轉載:https://www.jianshu.com/p/361db48390a8

一、數據庫命名規範


  • 採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線’_'組成,
  • 命名簡潔明確,多個單詞用下劃線’_'分隔,一個項目一個數據庫,多個項目慎用同一個數據庫

二、數據庫表命名規範


2.1數據表命名規範

  • (1)採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線""__""組成,命名簡潔明確,多個單詞用下劃線分隔
  • (2)全部小寫命名,禁止出現大寫
  • (3)禁止使用數據庫關鍵字,如:name,time ,datetime,password等
  • (4)表名稱不應該取得太長(一般不超過三個英文單詞)
  • (5)表的名稱一般使用名詞或者動賓短語
  • (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.1字段命名規範

  • (1)採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線’‘組成,命名簡潔明確,多個單詞用下劃線’'分隔

  • (2)全部小寫命名,禁止出現大寫

  • (3)字段必須填寫描述信息

  • (4)禁止使用數據庫關鍵字,如:name,time ,datetime password 等

  • (5)字段名稱一般採用名詞或動賓短語

  • (6)採用字段的名稱必須是易於理解,一般不超過三個英文單詞

  • (7)在命名錶的列時,不要重複表的名稱
    例如,在名employe的表中避免使用名爲employee_lastname的字段

  • (8)不要在列的名稱中包含數據類型

  • (9)字段命名使用完整名稱,禁止縮寫

3.2命名規範

1、名詞 示例:user_id user_name sex

2、動賓短語 示例:is_friend is_good

3.3待優化命名示例

1、大小寫規則不統一

錯誤示例:user_id houseID

說明:使用統一規則,修改爲”user_id”,”house_id”

2、加下劃線規則不統一

錯誤示例:username userid isfriend isgood

說明:使用下劃線進行分類,提升可性,方便管理,修改爲”user_name”,”user_id”,”is_friend”,”is_good”

3、字段表示不明確

錯誤示例: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)除了主關鍵字允許建立簇索引外,其它字段所建索引必須爲非簇索引

四、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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章