資料庫表的命名規範,資料庫表命名規範
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保持一致,看起來舒服,對應關係很明確,也不容易錯,前後不一致時容易令人費解。 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)的做法,也可以自訂一個序列表,有點像序列,或者用時間的年月日秒具體到毫秒。關於列的命名,建議對資料類型也做一些規範,因為很容易確定,只有四種主要類型:數字,字元,時間,邏輯值,這些在類型上和長度上都可以定好規範,統一起來。 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.這樣一目瞭然。
acess資料庫 表的命名規則
ACCESS開發的命名規則
資料庫涉及字元規則
採用26個英文字母(區分大小寫)和0 -9這十個自然數,加上底線_組成,共63個字元。不能出現其他字元(注釋除外)。
資料庫物件命名規則
資料庫物件包括表、視圖(查詢)、預存程序(參數查詢)、函數、約束。對象名字由首碼和實際名字組成,長度不超過30。首碼:使用小寫字母。
例如:
表 tb
視圖 vi
預存程序 sp
函數 fn
實際名字
實際名字盡量描述實體的內容,由單詞或單片語合,每個單詞的首字母大寫,其他字母小寫,不以數字和_開頭。
例如:
表 User_Info
視圖 UserList
預存程序 UserDelete
因此,合法的對象名字類似如下。
表 tbUser_Info、tbMessage_Detail
視圖 vi_MessageList
預存程序 sp_MessageAdd
資料庫表命名規則
欄位由首碼和實際名字組成。實際名字中首單詞一個系統盡量採取同一單詞。
首碼:使用小寫字母tb,表示表。
例如:tbMember
tbMember_Info
tbForum_Board
tbForum_Thread1
欄位命名規則
數字、字元、日期/時間、lob(大對象)、雜項,欄位由表的簡稱、底線,實際名字加尾碼組成。
尾碼:使用小寫字母,代表該欄位的屬性。
例如: User_Idint
User_Namestr
User_RegDatedtm
視圖命名規則
欄位由首碼和實際名字組成,中間用底線串連。
首碼:使用小寫字母vi,表示視圖。
例如:vi_User
vi_UserInfo
預存程序命名規則
欄位由首碼和實際名字組成,中間用底線串連。
首碼:使用小寫字母sp,表示預存程序。
例如:sp_User
資料庫設計文檔規則
所有資料庫設計要寫成文檔,文檔以模組化形式表達。大致格式如下:
'-------------------------------------------
' 表名: tbUser_Info
' 建立人:UAM_Richard
' 日期: 2004-12-17
' 版本: 1.0
' 描述: 儲存使用者資料
' 具體內容:
' UserId int,自動增量 使用者代碼
' UserName char(12) 使用者名稱字
' ......
'--------------------------------------------
sql語句規則
所有sql關鍵詞全部大寫,比如Select,Update,FROM,ORDER,BY等。...餘下全文>>
資料庫命名規範?
現在網上的資料庫都不能用中文,包括資料庫、表、欄位:
1、不能用中文
2、不能有非法字元,如:%^&等
3、以字母、數字開頭,以字母、數學、_的組合。