資料庫技術 資料庫命名與設計規範

2021-12-30 10:13:52 字數 2765 閱讀 6164

資料庫開發歷史上一直使用乙個有點神秘的系統命名資料庫表和字段。最初的資料庫管理系統(dbms ) ,這些命名方案的限制的結果已成為慣例和傳統。然而,隨著資料庫應用程式變得越來越複雜,更多的表和更大的開發團隊,並為開發人員來來去去,它變得更加重要,實現資料庫物件乙個強大的,有紀律的命名方案。乙個良好定義的命名方案,當你採用物件關係對映(orm )技術或自動**生成變得更加重要。

在大多數資料庫中,有三種型別的表:

1、資料表(data tables- 當然,在乙個資料庫中所有表包含資料,但我使用這個詞來指代實際儲存,而我們被刺激生成資料庫,開始與資料,如客戶,訂單或產品的表。例如,乙個客戶表包含與如姓名,位址和**領域的有關客戶的資訊。客戶是乙個資料表 - 不像其他這些表型別。

2、鏈結表(link tables)- 鏈結表做的無非就是連線兩個不同的資料表的兩個關鍵領域,形成許多一對多的關係。例如,你可以有乙個**商表和產品表之間的許多一對多的關係,因為每個**商可以支援多個產品,每個產品可以通過多個**商進行銷售。這將需要乙個第三表向賣方鏈結到的產品。

3、選擇表(picklist tables- 這是常見的有內含的選擇在資料表中的字段列表的表。例如,你可能在你的**商表中的狀態字段。值對**商的地位可以從另乙個表中選擇。我指的是這些型別的表作為「選擇」表,因為它們允許使用者從列表中選擇。

在我的命名方案,我想每個字首的表名與三個字首之一,以指示表的型別。我用下面的字首:

資料表- 我用的字首tbl 。所以,記住我的規則大小寫混合的,沒有下劃線,你可以有以下資料表:

tblcustomer

tblorder

tblorderentry

tblvendor

tblproduct

鏈結表- 我用的是字首的鏈結。因此,與產品**商聯絡起來,你將有乙個表linkvendorproduct 。

選擇表- 我用的字首pltbl 。因此,對於**商的地位,你將有乙個名為pltblvendorstatus表。如果你也有對客戶狀態的表,你可以有pltblcustomerstatus。

優點:我發現這個表命名系統具有幾個優點。

1、顯然,這是很容易從表名告訴是包含什麼樣的資料表。

2、我所見過的(如microsoft access或sql server ),每個資料庫的應用程式,按字母順序列出你的表。使用這個字首方案會使你的表是由型別時,按字母順序顯示分組。

3、如果你開發任何種類的自動**生成工具,很容易通過程式設計從什麼樣的資料表中包含的表名來確定。您只需檢查字首。

單數/複數名

請注意,在上面我的資料表,所有的表名是單數,即tblcustomer而不是tblcustomers 。無論您喜歡單數或複數名稱,你應該總是使用乙個或另乙個一致。我更喜歡單數,因為它似乎更清潔的給我。

其他表型別如:

記錄表(log tables)

錯誤表(error tables)

系統表(system tables)

每個這些可以有他們自己的字首。

表1. 基本資料庫物件命名

資料庫物件

字首 舉例

表(table)

字段(column)

檢視(view)

儲存過程(stored procedure)

觸發器(trigger)

索引(index)

主鍵(primary key)

外來鍵(foreign key)

check約束(check constraint)

unique約束

使用者定義資料型別(user-defined data type)

使用者定義函式(user-defined function)

無 無v pr

tr ix_

pk_fk_

ck_uq_

udtfn student

title

vactivity

prdelorder

trorder_d

ix_customerid

pk_admin

fk_order_ordertype

ck_tablecolumn

uq_tablecolumn

udtphone

fnduedate

變數(t-sql程式設計中宣告的變數)、過程(儲存過程或觸發器等)、實體(表、字段)應該根據他們所代表的實體意義和程序作用來命名:

表2.好的命名 和 不好的命名 範例

好的命名

不好的命名

@currentdate

@activitycount

@equipmenttype

prcalculatetotalprice

@d @actnum

@et@prruncalc

還有乙個常見的錯誤就是只使用面向計算機的術語,而不是面向公司業務的術語,比如processrecord就是乙個含糊不清的命名,應該使用乙個程序業務描述來替換它,比如completeorder.

prcounttotalamountofmonthlypayments (計算每月付費的總金額)

prgetparentorganizationalunitname (獲取上級單位名稱)

此時則應該考慮使用縮寫:

資料庫命名及設計規範

1.資料庫涉及字元規範 我們約定 採用26個英文本母 區分大小寫 和0 9這十個自然數,加上下劃線 組成,共63個字元。不能出現其他字元 注釋除外 2.資料庫物件命名規範 我們約定,資料庫物件包括表 檢視 查詢 儲存過程 引數查詢 函式 約束。物件名字由字首和實際名字組成,長度不超過30。字首 使用...

資料庫命名及設計規範

1.資料庫涉及字元規範 我們約定 採用26個英文本母 區分大小寫 和0 9這十個自然數,加上下劃線 組成,共63個字元。不能出現其他字元 注釋除外 2.資料庫物件命名規範 我們約定,資料庫物件包括表 檢視 查詢 儲存過程 引數查詢 函式 約束。物件名字由字首和實際名字組成,長度不超過30。字首 使用...

資料庫設計規範

使用明確 統一的標明和列名,例如 school,schoolcourse,courceid。資料表名使用單數而不是複數,例如 studentcourse,而不是studentcourses。資料表名不要使用空格。資料表名不要使用不必要的字首或者字尾,例如使用school,而不是tblschool,或...