河南鄭州企業網站建設網絡公司多爾福科技
服務熱線:0371-60999820
15238075082
數據庫設計:表的設計命名的十個注意點
    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日志記錄創建時間
操作IPOL_IP操作人的IP地址
備注信息OL_Remarks備注信息,一些其他的需要說明的信息

 這樣的一個操作日志比較籠統,不是能具體到具體的字段值更新,如果要具體到某個具體值的更新,則需要設計新的數據庫

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

登錄日志表Sys_LoginLog
中文名字段名注釋
登錄日志編號LL_ID登錄的日志編號
登錄人UI_ID登錄人
登錄時間LL_AddDate登錄時間
登錄IPLL_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.這樣一目了然。

上一篇: SQL Server中bit數據類型應用 下一篇: 谷歌搜索調整算法:對移動端不友好排名會下降
網站首頁 | 關于我們 | 版權所有 | 網站地圖 | 服務項目 | 網站建設 | 網站優化 | 軟件開發 | 經典案例 | 常見問題 | 聯系我們
版權所有:河南多爾福電子科技有限公司 豫ICP17014991號-2 技術支持:多爾福科技
地址:河南省鄭州市鄭東新區東風南路萬通街英地金臺府邸4號樓2單元1204室。 手機:15238075082 Email:[email protected]
大乐透胆拖中奖规则图