数据的设计命名的十个要点
1.表名一般以【模塊名稱_具體表名】來實(shí)現(xiàn),同一個(gè)模塊的前綴是一樣的。(Oracle大小寫敏感,在SQL中可以不用"_",因?yàn)榭梢杂么笮懸黄鸬膶懛ā_@也是可以的)
2.表名稱不應(yīng)該取得太長(zhǎng)(一般不超過三個(gè)英文單詞,不推薦使用中文拼音,總的長(zhǎng)度不要超過30個(gè)字符)。表名使用英文的原因,有些項(xiàng)目有英文版的需要,或者這個(gè)項(xiàng)目是給外國做的時(shí)候,使用英文是基本的要求,應(yīng)該說這是一個(gè)習(xí)慣問題,多學(xué)一點(diǎn)英文也不是壞事 3.不使用tab或tb作為表前綴(本來就是一個(gè)表,為什么還要說明)。 4.一些作為多對(duì)多連接的表,可以使用兩個(gè)表的前綴作為表名:如:用戶登錄表User_Login,用戶分組表User_GroupInfo,這兩個(gè)表建立多對(duì)多關(guān)系的表名為:User_Group_Relation(關(guān)系統(tǒng)一用Relation)。注意一點(diǎn),主鍵在做其他表的外鍵時(shí),或者在被其他表引用時(shí),字段說明和字段名盡量保持一致,比如發(fā)帖表BBS_Topic里的用戶字段寫成UI_ID,這樣跟用戶信息表User_Info的主鍵UI_ID保持一致,看起來舒服,對(duì)應(yīng)關(guān)系很明確,也不容易錯(cuò),前后不一致時(shí)容易令人費(fèi)解。 5.當(dāng)系統(tǒng)中有一些少量的,重復(fù)出現(xiàn)的值時(shí),使用字典表來節(jié)約存儲(chǔ)空間和優(yōu)化查詢。如地區(qū)、系統(tǒng)中用戶類型的代號(hào)等。這類值不會(huì)在程序的運(yùn)行期變化,但是需要存儲(chǔ)在數(shù)據(jù)庫中。一般數(shù)據(jù)庫中,都有一個(gè)數(shù)據(jù)字典表,用來保存系統(tǒng)所用到的基礎(chǔ)數(shù)據(jù),大型的字段表如省份城市區(qū)域的字典表,統(tǒng)一以Dictionary_作為前綴。 6. 與字段有關(guān),默認(rèn)的一些特殊字段, 很多表中, 比如一些業(yè)務(wù)處理表中,除了添加生成的自動(dòng)編號(hào)ID(一般作為主鍵用),該記錄創(chuàng)建的時(shí)間CreateDate(創(chuàng)建時(shí)間),該記錄的創(chuàng)建人CreatBy(注意這里,沒UI_ID(用戶信息表User_Info的主鍵UI_ID),因?yàn)檫€有修改人),最后修改人LastEditBy,最后修改時(shí)間LastEditDate。(這些可以直接使用中文字符,而不使用編碼,提高查詢的效率) 同時(shí)有的時(shí)候需要注意,刪除的時(shí)候并不真的刪除該記錄,而是添加一個(gè)標(biāo)識(shí)位,比如XX_DeleteStaus刪除狀態(tài)。1是有效的,0則是無效的。 7.在命名表時(shí),用單數(shù)形式表示名稱。例如,使用 Employee,而不是 Employees。 8.數(shù)據(jù)庫中應(yīng)建立這樣一個(gè)表,就是數(shù)據(jù)庫本身的字段信息,表的說明,也就是數(shù)據(jù)庫設(shè)計(jì)文檔的一個(gè)表,方便查詢使用,有什么不明的可以直接從數(shù)據(jù)庫查詢,數(shù)據(jù)庫文檔丟失,注釋丟失,都可以重新起作用。 9.每個(gè)表都應(yīng)該有一個(gè)主鍵,這個(gè)主鍵最好是數(shù)字,而且是遞增的,有很多表的主鍵用32位字符編碼,這樣做的目的更多的是從安全考慮的。因?yàn)樽址鄷r(shí)索引時(shí)效率低,而使用自增列也不是很少,比如添加主表和從表操作時(shí),主表的主鍵是從表的外鍵,這個(gè)時(shí)候還有取返回值,然后再添加,不可以同時(shí)添加。主鍵可以用自定義的規(guī)則,大部分用MAX(ID)的做法,也可以自定義一個(gè)序列表,有點(diǎn)像序列,或者用時(shí)間的年月日秒具體到毫秒。關(guān)于列的命名,建議對(duì)數(shù)據(jù)類型也做一些規(guī)范,因?yàn)楹苋菀状_定,只有四種主要類型:數(shù)字,字符,時(shí)間,邏輯值,這些在類型上和長(zhǎng)度上都可以定好規(guī)范,統(tǒng)一起來。 10.操作日志表,登錄日志表,這是數(shù)據(jù)庫中必備的兩個(gè)表,這個(gè)記錄也需要做進(jìn)一步的保存。這個(gè)有兩種情形,一是具體到單個(gè)字段的操作日志,二是整個(gè)表的操作日志。常見的幾個(gè)表具體說明:操作日志表Sys_OperateLog、登錄日志表Sys_LoginLog、
系統(tǒng)字典表Sys_Dictionary、系統(tǒng)字典表類型Sys_DicType
| 中文名 | 字段名 | 注釋 |
| 操作日志編號(hào) | OL_ID | 索引列,日志的編號(hào) |
| 操作類型 | OL_Type | 是添加,修改,刪除,查詢等類容(可放在通用字典表) |
| 操作模塊 | OL_Module | 操作模塊,比如新聞模塊,關(guān)聯(lián)的是菜單表編號(hào) |
| 操作內(nèi)容 | OL_Content | 操作了什么內(nèi)容,越具體越好(修改前、修改后) |
| 操作人 | UI_ID | 用戶的信息 |
| 操作時(shí)間 | OL_AddDate | 日志記錄創(chuàng)建時(shí)間 |
| 操作IP | OL_IP | 操作人的IP地址 |
| 備注信息 | OL_Remarks | 備注信息,一些其他的需要說明的信息 |
這樣的一個(gè)操作日志比較籠統(tǒng),不是能具體到具體的字段值更新,如果要具體到某個(gè)具體值的更新,則需要設(shè)計(jì)新的數(shù)據(jù)庫
一般情況下需要這樣幾個(gè)表,系統(tǒng)中可能已經(jīng)有了,但是我們拿到我們自己的數(shù)據(jù)庫中來,一個(gè)是數(shù)據(jù)庫列表的表(就是數(shù)據(jù)庫中有幾個(gè)表)(編號(hào),創(chuàng)建時(shí)間,創(chuàng)建人,修改時(shí)間,修改人,表名,注釋,是否刪除),然后就是數(shù)據(jù)庫表下面的字段類型(編號(hào),創(chuàng)建時(shí)間,創(chuàng)建人,修改時(shí)間,修改人,字段名,字段類型,字段精度,字段說明,字段注釋,表的編號(hào)),也就是字段列表,這時(shí)的日志操作表可以這樣設(shè)計(jì)(編號(hào),表名,被修改的字段名,修改前值,修改后值,操作人,操作時(shí)間,相關(guān)模塊,操作IP) 這種能記錄修改記錄,但是添加和刪除時(shí)記錄就不是很方便控制了。
| 中文名 | 字段名 | 注釋 |
| 登錄日志編號(hào) | LL_ID | 登錄的日志編號(hào) |
| 登錄人 | UI_ID | 登錄人 |
| 登錄時(shí)間 | LL_AddDate | 登錄時(shí)間 |
| 登錄IP | LL_IP | 登錄的IP地址 |
| 登錄狀態(tài) | LL_Status | 登錄是否成功的標(biāo)識(shí)位 |
| 登錄瀏覽器 | LL_Browser | 登錄瀏覽器 |
| 登錄分辨率 | LL_Resolution | 登錄的屏幕分辨率 |
還有一個(gè)就是數(shù)據(jù)字典表,我看過很多的數(shù)據(jù)庫設(shè)計(jì),類型表一個(gè)接一個(gè),沒有放在一起,還有的干脆寫在注釋里,有的根本就沒有,這樣某個(gè)程序員走了,這個(gè)字段就沒人知道了,即使沒走,自己也有可能時(shí)間長(zhǎng)了忘掉,所以,見一個(gè)基礎(chǔ)數(shù)據(jù)字典表的作用非常重要,其他的比如地區(qū)表(Sys_DicArea),漢語拼音表(Sys_DicCharacter)(用來漢字和拼音的轉(zhuǎn)換)因?yàn)閿?shù)據(jù)量較大,單獨(dú)建表。這里介紹通用的數(shù)據(jù)字典表。
| 中文名 | 字段名 | 注釋 |
| 字典編號(hào) | SD_ID | 字典的編號(hào),可以直接使用此主鍵編碼(注意刪除時(shí)的關(guān)聯(lián)關(guān)系) |
| 字典類型 | DY_ID | 字典類型的ID,需要建立字典類型表,因?yàn)榉诺氖撬械淖值浔?/td> |
| 字典編碼 | SD_Code | 字典編碼,支持自己編碼(同一類型是唯一的,一般是整數(shù)型 |
| 字典中文名稱 | SD_Name | 字典中文名稱(比如男女,比如狀態(tài),可以放在字典表里,作為查看依據(jù)) |
| 字典備注 | SD_Remarks | 字典備注,字典需要一些備注信息 |
| 創(chuàng)建人 | ? | ? |
| 創(chuàng)建日期 | ? | ? |
| 修改人 | ? | ? |
| 修改日期 | ? | ? |
| 中文名 | 字段名 | 注釋 |
| 字典類型編號(hào) | DT_ID | 字典的自動(dòng)索引號(hào) |
| 字典類型名稱 | DT_Name | 字典類型的中文名稱 |
| 字典的備注說明 | DT_Remarks | 字典使用的備注說明 |
| 字典狀態(tài) | DT_Status | 字典是否刪除,不在使用 |
最后補(bǔ)充一些內(nèi)容,一般設(shè)計(jì)數(shù)據(jù)庫是這個(gè)樣子的,但是不排除有些特殊的情形,為了數(shù)據(jù)的保密性,數(shù)據(jù)庫的表名和字段名都是一些看似毫無意義的字符數(shù)字,比如Table1,Col1,但是有一個(gè)表是說明表,或者有對(duì)應(yīng)的數(shù)據(jù)庫文檔設(shè)計(jì)。
補(bǔ)充:一些列說明了單位類型,可以在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候表明,比如HeightIncm, WeightInKg.這樣一目了然。
總結(jié)
以上是生活随笔為你收集整理的数据的设计命名的十个要点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书网站最新改版
- 下一篇: 浅谈全文索引