數據庫表的命名規范


1.表名一般以【模塊名稱_詳細表名】來實現,同一個模塊的前綴是一樣的。(Oracle大寫和小寫敏感。在SQL中能夠不用"_",由於能夠用大寫和小寫一起的寫法。

這也是能夠的)

2.表名稱不應該取得太長(一般不超過三個英文單詞。不推薦使用中文拼音,總的長度不要超過30個字符)。表名使用英文的原因,有些項目有英文版的須要。或者這個項目是給外國做的時候,使用英文是主要的要求。應該說這是一個習慣問題,多學一點英文也不是壞事
 
3.不使用tab或tb作為表前綴(本來就是一個表,為什么還要說明)。

 
4.一些作為多對多連接的表,能夠使用兩個表的前綴作為表名:如:用戶登錄表User_Login。用戶分組表User_GroupInfo,這兩個表建立多對多關系的表名為:User_Group_Relation(關系統一用Relation)。 注意一點,主鍵在做其它表的外鍵時,或者在被其它表引用時,字段說明和字段名盡量保持一致。比方發帖表BBS_Topic里的用戶字段寫成UI_ID,這樣跟用戶信息表User_Info的主鍵UI_ID保持一致,看起來舒服,相應關系非常明白,也不easy錯,前后不一致時easy令人費解。

  
5.當系統中有一些少量的。反復出現的值時,使用字典表來節約存儲空間和優化查詢。

如地區、系統中用戶類型的代號等。這類值不會在程序的執行期變化,可是須要存儲在數據庫中。

一般數據庫中。都有一個數據字典表,用來保存系統所用到的基礎數據,大型的字段表如省份城市區域的字典表,統一以Dictionary_作為前綴。

     
6. 與字段有關,默認的一些特殊字段, 非常多表中。
  比方一些業務處理表中,除了加入生成的自己主動編號ID(一般作為主鍵用),該記錄創建的時間CreateDate(創建時間),該記錄的創建人CreatBy(注意這里。沒UI_ID(用戶信息表User_Info的主鍵UI_ID),由於還有改動人),最后改動人LastEditBy。最后改動時間LastEditDate。(這些能夠直接使用中文字符,而不使用編碼,提高查詢的效率)
  同一時候有的時候須要注意,刪除的時候並不真的刪除該記錄,而是加入一個標識位,比方XX_DeleteStaus刪除狀態。1是有效的,0則是無效的。

 
7.在命名表時,用單數形式表示名稱。

比如。使用 Employee,而不是 Employees。

 
8.數據庫中應建立這樣一個表。就是數據庫本身的字段信息。表的說明,也就是數據庫設計文檔的一個表。方便查詢使用,有什么不明的能夠直接從數據庫查詢,數據庫文檔丟失,凝視丟失,都能夠又一次起作用。

 
9.每一個表都應該有一個主鍵,這個主鍵最好是數字。並且是遞增的,有非常多表的主鍵用32位字符編碼,這樣做的目的很多其它的是從安全考慮的。由於字符多時索引時效率低,而使用自增列也不是非常少,比方加入主表和從表操作時。主表的主鍵是從表的外鍵,這個時候還有取返回值,然后再加入,不能夠同一時候加入。

主鍵能夠用自己定義的規則,大部分用MAX(ID)的做法,也能夠自己定義一個序列表,有點像序列。或者用時間的年月日秒詳細到毫秒。關於列的命名,建議對數據類型也做一些規范,由於非常easy確定。僅僅有四種主要類型:數字,字符,時間,邏輯值,這些在類型上和長度上都能夠定好規范,統一起來。

     
10.操作日志表,登錄日志表,這是數據庫中必備的兩個表。這個記錄也須要做進一步的保存。這個有兩種情形,一是詳細到單個字段的操作日志。二是整個表的操作日志。

常見的幾個表詳細說明:操作日志表Sys_OperateLog、登錄日志表Sys_LoginLog、

           系統字典表Sys_Dictionary、系統字典表類型Sys_DicType

 

操作日志表Sys_OperateLog
中文名 字段名 凝視
操作日志編號 OL_ID 索引列。日志的編號
操作類型 OL_Type 是加入,改動,刪除,查詢等類容(可放在通用字典表)
操作模塊 OL_Module 操作模塊。比方新聞模塊,關聯的是菜單表編號
操作內容 OL_Content 操作了什么內容,越詳細越好(改動前、改動后)
操作人 UI_ID 用戶的信息
操作時間 OL_AddDate 日志記錄創建時間
操作IP OL_IP 操作人的IP地址
備注信息 OL_Remarks 備注信息,一些其它的須要說明的信息

 這種一個操作日志比較籠統,不是能詳細到詳細的字段值更新,假設要詳細到某個詳細值的更新。則須要設計新的數據庫

普通情況下須要這樣幾個表。系統中可能已經有了,可是我們拿到我們自己的數據庫中來,一個是數據庫列表的表(就是數據庫中有幾個表)(編號。創建時間。創建人,改動時間,改動人,表名,凝視,是否刪除),然后就是數據庫表以下的字段類型(編號,創建時間,創建人,改動時間,改動人。字段名,字段類型。字段精度,字段說明,字段凝視,表的編號),也就是字段列表。這時的日志操作表能夠這樣設計(編號。表名。被改動的字段名,改動前值。改動后值。操作人,操作時間,相關模塊,操作IP) 這樣的能記錄改動記錄。可是加入和刪除時記錄就不是非常方便控制了。

 

登錄日志表Sys_LoginLog
中文名 字段名 凝視
登錄日志編號 LL_ID 登錄的日志編號
登錄人 UI_ID 登錄人
登錄時間 LL_AddDate 登錄時間
登錄IP LL_IP 登錄的IP地址
登錄狀態 LL_Status 登錄是否成功的標識位
登錄瀏覽器 LL_Browser 登錄瀏覽器
登錄分辨率 LL_Resolution 登錄的屏幕分辨率

另一個就是數據字典表。我看過非常多的數據庫設計,類型表一個接一個,沒有放在一起,還有的干脆寫在凝視里,有的根本就沒有,這樣某個程序猿走了,這個字段就沒人知道了,即使沒走,自己也有可能時間長了忘掉,所以,見一個基礎數據字典表的作用非常重要,其它的比方地區表(Sys_DicArea),漢語拼音表(Sys_DicCharacter)(用來漢字和拼音的轉換)由於數據量較大,單獨建表。

這里介紹通用的數據字典表。

 

系統字典表Sys_Dictionary
中文名 字段名 凝視
字典編號 SD_ID 字典的編號。能夠直接使用此主鍵編碼(注意刪除時的關聯關系)
字典類型 DY_ID 字典類型的ID,須要建立字典類型表。由於放的是全部的字典表
字典編碼 SD_Code 字典編碼,支持自己編碼(同一類型是唯一的,通常是整數型
字典中文名稱 SD_Name 字典中文名稱(比方男女。比方狀態,能夠放在字典表里,作為查看根據)
字典備注 SD_Remarks 字典備注,字典須要一些備注信息
創建人    
創建日期    
改動人    
改動日期    

 

系統字典表類型Sys_DicType
中文名 字段名 凝視
字典類型編號 DT_ID 字典的自己主動索引號
字典類型名稱 DT_Name 字典類型的中文名稱
字典的備注說明 DT_Remarks 字典使用的備注說明
字典狀態 DT_Status 字典是否刪除,不在使用

 

最后補充一些內容,一般設計數據庫是這個樣子的,可是不排除有些特殊的情形,為了數據的保密性,數據庫的表名和字段名都是一些看似毫無意義的字符數字,比方Table1,Col1,可是有一個表是說明表,或者有相應的數據庫文檔設計。

 

補充:一些列說明了單位類型。能夠在設計數據庫的時候表明,比方HeightIncm, WeightInKg.這樣一目了然。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM