資料庫表欄位命名規範

来源:https://www.cnblogs.com/zhuhui-site/archive/2018/11/30/10043665.html
-Advertisement-
Play Games

摘要:當前研發工作中經常出現因資料庫表、資料庫表欄位格式不規則而影響開發進度的問題,在後續開發使用原來資料庫表時,也會因為資料庫表的可讀性不夠高,表欄位規則不統一,造成數據查詢,數據使用效率低的問題,所以有必要整理出一套合適的資料庫表欄位命名規範來解決優化這些問題。 本文是一篇包含了資料庫命名、數據 ...


資料庫表欄位命名規範

 

摘要:當前研發工作中經常出現因資料庫表、資料庫表欄位格式不規則而影響開發進度的問題,在後續開發使用原來資料庫表時,也會因為資料庫表的可讀性不夠高,表欄位規則不統一,造成數據查詢,數據使用效率低的問題,所以有必要整理出一套合適的資料庫表欄位命名規範來解決優化這些問題。

本文是一篇包含了資料庫命名、資料庫表命名、資料庫表欄位命名及SQL語言編碼的規範文檔,針對研發中易產生的問題和常見錯誤做了一個整理和修改,為日後涉及到資料庫相關的研發工作做好準備。

 

一、資料庫命名規範

採用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命名規範

①名詞  示例: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)除了主關鍵字允許建立簇索引外,其它欄位所建索引必須為非簇索引

 

 

 

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

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • tar命令可以為linux的文件和目錄創建檔案。利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾 ...
  • 一、背景 Netplan 是 Ubuntu 17.10中 引入的一種新的命令行網路配置實用程式,用於在 系統中輕鬆管理和配置網路設置。它允許您使用 YAML 抽象來配置網路介面。它可與 NetworkManager 和 systemd networkd 網路守護程式(稱為 渲染程式 ,您可以選擇使用 ...
  • 導入單個AD用戶命令 New-ADUser -Name "周八" -Surname "周" -GivenName "八"-SamAccountName "20160219008" -UserPrincipalName "[email protected]" -DisplayName "周八" -D ...
  • 一. 好用便利的工具,常用 pt-align 對齊文本格式pt-archiver 循序漸進的歸檔表,刪除表,遷移數據pt-config-diff 對比不同配置文件、伺服器配置參數pt-diskstats 查看磁碟iopt-fifo-split 把大文件通過管道分割成若幹小文件pt-kill 批量殺連 ...
  • 問題:Oracle EBS 11無法打開Form及Form顯示亂碼 解決: 1、嘗試使用jre1.5或1.6安裝目錄下jre/bin/server目錄里的jvm.dll替換JInitiator安裝目錄里的bin/hotspot目錄下的jvm.dll文件,如果替換後,後續操作提示錯誤,不妨再換為預設的 ...
  • 以前記錄數據可能很少也很簡單,比如說老王借了老李半斤肉,這樣的數據老李直接就寫到牆上就行了。 後來數據多了人們就以表格的方式開始記錄,寫到一張A4紙上,比如學生的檔案,有表頭和序號等。 表頭裡有姓名、性別、年齡、籍貫等等,有橫向的信息有豎向的信息。這樣的A4紙散放在那裡肯定是不行的。 於是人們把它們 ...
  • oracle11g中沒有scott用戶的解決,通過創建scott.sql文件,然後授予許可權,解鎖,修改密碼等一系列的操作來完成賬號建立 ...
  • 一.概述 除了上篇介紹的RDB持久化功能之外,Redis還提供了AOF(Append Only File)持久化功能。與RDB保存資料庫中的鍵值對來記錄資料庫狀態不同,AOF是通過保存redis伺服器所執行的寫命令來記錄資料庫狀態的。AOF持久化方式記錄每次對伺服器寫的操作,當伺服器啟動時,就會通過 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...