資料庫設計表及字段命名規範(我整理的,望大家多多提建議)
1.資料庫表命名規範:
(1)表名前應該加上字首,表的字首乙個用系統或模組的英文名稱縮寫,字首全部大寫或首字母大寫,表名中包含的單詞首字母大寫。
(2)資料庫表名應該有意義,並且易於理解
,最好使用可以表達功能的英文單詞或縮寫,如果用英文單詞表示,建議使用完整的英文單詞。
(3)表名不可以太長,最好不要超過
3個英文單詞長度(
22個字母)。
(4)在資料庫表命名時應該用英文單詞的單數形式,如員工表命名:應該為
employee
而不是employees .
(5)如果是後台表命名時應該在表名基礎上加上字尾
_b(back
首字母)
(6)在表建立完成前,應該為表新增表的注釋。
2.表字段命名規範:
(1)資料庫表字段應該是有意義而且易於理解
的,最好是能夠表達字段含義的英文本母
(有人認為如果用英文單詞作為字段,因為翻譯工具不同,而字段不統一建議使用漢語拼音首字母縮寫
;有人認為用漢語拼音縮寫看起來不直觀,老半天也不知道到底這個欄位是幹什麼的
)(2)
系統中所有屬於內碼,即僅用於標識唯一性和程式內部用到的標識性欄位,欄位名稱建議取為
id ,採用型別為整型或長整型.
(3)系統中屬於是業務內的編號字段,代表一定業務資訊,建議字段命名為
code ,
如工作單編號
wf_code .
(4)
不要在資料庫表字段(列名)中包含資料型別,如:
datetime
(5)不要在資料庫表字段(列名)命名時重複表名,可以使用表名首字母(不包含資料庫表名字首)
注意:不要在資料庫表字段(列名)命名時
不建議使用資料庫關鍵字,如:
name,time ,datetime password 等3.
表設計規範:
(1)所有欄位在設計時,除以下資料型別
timestamp
、image
、datetime
、smalldatetime
、uniqueidentifier
、binary
、sql_variant
、binary
、varbinary
外,必須有預設值。字元型的預設值為乙個空字元值串』』;數值型的預設值為數值
0;邏輯型的預設值為數值0;
其中:系統中所有邏輯型中數值
0表示為「假」;數值
1表示為「真」。
datetime
、smalldatetime
型別的字段沒有預設值,必須為
null
。(2)
當欄位定義為字串形時建議使用
varchar
而不用nvarchar。注
:在mysql5.0以上的版本中,varchar資料型別的長度支援到了65535,也就是說可以存放65532個位元組的資料,起始位和結束位占去了3個
位元組。
(3)建議在大多數表中(如工作單),應都有以下字段:
欄位名說明型別預設值
creatorid
建立者int
預設值為0
createdtime
建立時間
datetime
預設值為
null
(4)欄位的描述
a.欄位必須填寫描述資訊(注釋)
b.盡量遵守第三正規化的標準(
3nf)
表內的每乙個值只能被表達一次(列名不重複)
表內的每一行都應當被唯一的標示(標識唯一性,如
自動增長
主鍵)表內不應該儲存依賴於其他鍵的非鍵資訊
(5)加索引規則
a.表建好後資料庫自動為表生成乙個索引(為
自動增長的列生成唯一索引),如果在對這列新增索引,資料庫會給乙個警告
,內容大概是,已經為這列新增了索引,建議修改索引名稱和自動增長列名保持一致,為了方便使用。
b.如果在新增索引時,建議索引名稱和資料庫列名保持一致,為了方便使用
c.如果字段事實上是與其它表的關鍵字相關聯而未設計為外來鍵引用,需建索引。
d.如果欄位與其它表的字段相關聯,需建索引。
e.如果欄位需做模糊查詢之外的條件查詢,需建索引。f.
除了主關鍵字允許建立簇索引外,其它欄位所建索引必須為非簇索引。
4.儲存過程命名規範
(1)存貯過程的命名請遵循以下命名規範:
usp_ +
系統模組縮寫(與表字首類似)
+_ +
功能標識
+ 代表存貯過程操作的主要表名(不帶字首)或功能的英文單詞或英文單詞縮寫。
如果乙個存貯過程只對乙個表進行操作,建議存貯過程的名稱就用存貯過程所操作的表的表名(不帶字首)。這樣有利於根據表名找到相應的存貯過程。例如:
用於新增的存貯過程
usp_message_add_model
用於修改的存貯過程
usp_ message_upt_model
用於刪除的存貯過程
usp_ message_del_ modele
注:usp
是user
stored procedure
縮寫5.
儲存過程設計規範
在存貯過程中必須說明以下內容:
(1)目的:說明此存貯過程的作用。
(2)(3)
建立日期:建立存貯過程時的日期。
(4)修改記錄:
修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的**上修改,也不能刪除原來的**,只能先將原來的**注釋掉,再重新增加正確的**。修改順序號的形式為:
log1
,log2
,log3
。。。,根據修改次數順序增加,同時在注釋掉的原來的**塊和新增的正確**塊前後註明修改順序號。
(5)對存貯過程各引數及變數的中文註解。
建議:在資料庫中建立乙個文字檔案儲存建立指令碼
6.檢視命名規範
檢視的命名請遵循以下命名規範:
uv _ +
系統模組縮寫(與表字首類似)
+_ +
功能標識
+ 代表檢視查詢的主要表名(不帶字首)或功能的英文單詞或英文單詞縮寫。
如果乙個檢視只對乙個表進行查詢,建議檢視的名稱就用檢視所查詢的表的表名(不帶字首)。這樣有利於根據表名找到相應的檢視。
注:uv
是userview
縮寫7.
檢視設計規範
在檢視中必須說明以下內容:
(1)目的:說明此檢視的作用。
(2)建立者:首次建立此檢視的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
(3)修改者、修改日期、修改原因:如果有人對此檢視進行了修改,則必須在此檢視的前面加註修改者姓名、修改日期及修改原因。
(4)對檢視各引數及變數的中文註解
建議:在資料庫中建立乙個文字檔案儲存建立指令碼
8.觸發器命名規範
insert
觸發器加
'_i'
,delete
觸發器加
'_d'
,update
觸發器加
'_u'
9.觸發器設計規範
在檢視中必須說明以下內容:
(1)目的:說明此觸發器的作用。
(2)建立者:首次建立此觸發器的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
(3)修改者、修改日期、修改原因:如果有人對此觸發器進行了修改,則必須在此觸發器的前面加註修改者姓名、修改日期及修改原因。
(4)對觸發器各引數及變數的中文註解
資料庫設計規範
使用明確 統一的標明和列名,例如 school,schoolcourse,courceid。資料表名使用單數而不是複數,例如 studentcourse,而不是studentcourses。資料表名不要使用空格。資料表名不要使用不必要的字首或者字尾,例如使用school,而不是tblschool,或...
資料庫設計規範
csm簡寫會方便很多 就不要用member id,一致性方便大家理解 system.currenttimemillis 進行儲存text查詢是會產生臨時磁碟檔案,效能差進行擷取儲存型別 占用位元組 範圍tinyint 1 128 127 smallint 2 32768 32767 mediumin...
資料庫設計規範
1 基本需求 某學校設計學生教學管理系統。學生實體包括學號 姓名 性別 生日 民族 籍貫 簡歷 登記照,每名學生選擇乙個主修專業,專業包括專業編號和名稱,乙個專業可以屬於 乙個學院,乙個學院可以有若干個專業。學院資訊要儲存學院號 學院名 院長。教學管理還要管理課程表和學生成績。課程表包括課程號 課程...