數據庫設計規范
數據庫表命名規范?
此規范包括表名命名規范,索引命名規范,外鍵命名規范和字段名命名規范。?
表名命名規則?
數據庫表的命名以是名詞的復數形式且都為小寫,如cities,?categories,?friends等等?
如果表名由幾個單詞組成,則單詞間用下劃線("_")分割,如subscribed_pois,poi_categories等?
表名盡量用全名?
表名限制在30個字符內。當表的全名超過30字符時,可用縮寫來減少表名的長度,如description?
--
>?desc;information?-->?info;address?-->?addr等?
表字段名命名規則?
字段名為小寫?
字段名為有意義的單詞,或單詞的縮寫?
如果字段由幾個單詞組成,則單詞間用下劃線("_")分割,如client_id,post_code等?
字段名限制在30個字符內。當字段名超過30字符時,可用縮寫來減少字段名的長度,如description?
--
>?desc;information?-->?info;address?-->?addr等?
索引命名規則?
索引須按照IDX_table_
<
column
>
_
<
column
>
,其中
<
table
>
是建立索引的表名,
<
column
>
是建立索引的字段名?
索引名限制在30個字符內。當索引名超過30字符時,可用縮寫來減少索引名的長度,如description?
--
>?desc;information?-->?info;address?-->?addr等?
主鍵、外鍵命名規則?
主鍵按照PK_
<
table
>
的規則命名,其中
<
table
>
為數據庫表名?
唯一鍵按照UK_
<
table
>
_
<
column
>
的規則命名,其中
<
table
>
為數據塊表名,
<
column
>
為字段名?
外鍵按照FK_
<
pppp
>
_
<
cccc
>
_
<
nn
>
的規則命名,其中
<
pppp
>
為父表名,
<
cccc
>
為子表名,
<
nn
>
為序列號?
數據庫規范化設計的一些基本要求:
一、表中應該避免可為空的列。
雖然表中允許空列,但是,空字段是一種比較特殊的數據類型。數據庫在處理的時候,需要進行特殊的處理。如此的話,就會增加數據庫處理記錄的復雜性。當表中有比較多的空字段時,在同等條件下,數據庫處理的性能會降低許多。
?解決方法:一是通過設置默認值的形式,來避免空字段的產生。二是若一張表中,允許為空的列比較多,接近表全部列數的三分之一。而且,這些列在大部分情況下,都是可有可無的。若數據庫管理員遇到這種情況,建議另外建立一張副表,以保存這些列。
二、表不應該有重復的值或者列。
三、表中記錄應該有一個唯一的標識符。
四、數據庫對象要有統一的前綴名。
五、盡量只存儲單一實體類型的數據。
六、盡量符合數據庫的幾個范式。
設計規范
所有字段在設計時,除以下數據類型timestamp、
image
、
datetime
、
smalldatetime
、
uniqueidentifier
、
binary
、sql_variant、
binary
?、varbinary外,必須有默認值。字符型的默認值為一個空字符值串’’;數值型的默認值為數值0;邏輯型的默認值為數值0;
其中:系統中所有邏輯型中數值0表示為“假”;數值1表示為“真”。
datetime
、smalldatetime類型的字段沒有默認值,必須為NULL。
當字段定義為字符串形時建議使用varchar而不用nvarchar。
字段的描述
數據庫中每個字段的描述(Description)如下:
表內的每一個值只能被表達一次
表內的每一行都應當被唯一的標示
表內不應該存儲依賴于其他鍵的非鍵信息
如果字段事實上是與其它表的關鍵字相關聯而未設計為外鍵引用,需建索引。
如果字段與其它表的字段相關聯,需建索引。
SQL?開發代碼規范?
我們規定sql語句編碼的時候程序員需要遵循以下規范:?
a?所有的關鍵字的所有字母必須大寫。如果一個常量由幾個詞組成,我們規定兩個詞之間使用下劃線(_)來劃分。表名、列名、視圖名或它們的別名必須和它們的定義保持一致。?
b?注釋必須要規范。
其他設計技巧
1
)避免使用觸發器
觸發器的功能通常可以用其他方式實現。在調試程序時觸發器可能成為干擾。假如你確實需要采用觸發器,你最好集中對它文檔化。
2
)使用常用英語(或者其他任何語言)而不要使用編碼在創建下拉菜單、列表、報表時最好按照英語名排序。假如需要編碼,可以在編碼旁附上用戶知道的英語。
3
)保存常用信息。讓一個表專門存放一般數據庫信息非常有用。在這個表里存放數據庫當前版本、最近檢查
/
修復、關聯設計文檔的名稱、客戶等信息。這樣可以實現一種簡單機制跟蹤數據庫,當客戶抱怨他們的數據庫沒有達到希望的要求而與你聯系時,這樣做對非客戶機
/
服務器環境特別有用。
4
)包含版本機制。在數據庫中引入版本控制機制來確定使用中的數據庫的版本。時間一長,用戶的需求總是會改變的。最終可能會要求修改數據庫結構。把版本信息直接存放到數據庫中更為方便。
5
) 編制文檔。對所有的快捷方式、命名規范、限制和函數都要編制文檔。采用給表、列、觸發器等加注釋的數據庫工具。對開發、支持和跟蹤修改非常有用。對數據庫 文檔化,或者在數據庫自身的內部或者單獨建立文檔。這樣,當過了一年多時間后再回過頭來做第2?個版本,犯錯的機會將大大減少。
6
)測試、測試、反復測試。建立或者修訂數據庫之后,必須用用戶新輸入的數據測試數據字段。最重要的是,讓用戶進行測試并且同用戶一道保證選擇的數據類型滿足商業要求。測試需要在把新數據庫投入實際服務之前完成。
7
)檢查設計。在開發期間檢查數據庫設計的常用技術是通過其所支持的應用程序原型檢查數據庫。換句話說,針對每一種最終表達數據的原型應用,保證你檢查了數據模型并且查看如何取出數據。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
