資料庫命名原則

2021-08-22 13:01:46 字數 3468 閱讀 4990

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,可是有乙個表是說明表,或者有相應的資料庫文件設計。

生信學習 TGCA資料庫的命名原則

在tgca資料庫中乙個患者至多對應兩個樣本,但在原始選區的時候,一共是有多個樣本可以選取的,從這多個樣本中選取陰性 癌旁組織 和陽性 癌組織 最好的那個,當然,如果只有陽性或陰性的話,那麼至多只有1個樣本。如 tgca a6 6650 01a 11r 1174 07 tgca a6 6650 01a...

資料庫命名規範

1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間名後加 例 對system表...

資料庫命名規範

資料庫命名規範 一 實體和屬性的命名 1 常用單詞已經進行了縮寫,在命名過程當中,根據語義拼湊縮寫即可。注意,由於orcal資料庫會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線 舉例 定義的縮寫 sales sal 銷售 order ord 訂單 detail dtl 明細 則銷售訂單名...