本文將針對以下資料庫物件來說明:
- 資料表(Tables)
- 資料欄位(Columns)
- 檢視表(Views)
- 預儲程序(Stored Procedures)
- 觸發程序(Triggers)
所有的資料庫物件命名都應該遵循以下規則:
- 若未超過長度,限制應避免使用縮寫。
- 使用 Pascal 大小寫命名法,前綴詞則使用 Camel 命名法。
- 使用英文字母或底線字元組合,數字應盡量避免。
- 不要以底線字元當字首
若因長度的限制而需要使用縮寫時,應遵從以下的規則:
- 縮寫的第一個字元應該與單詞的第一個字母相同。
- 兩個字母的縮略字使用全大寫字母,而三個以上之字元的縮略字則使用 Pascal 大小寫慣例。遵守命名慣例的範例:ID、DB、Sql。違反命名慣例的範例:Id、Db、SQL。
- 不要使用任何不被廣泛接受的縮略字。
資料表(Tables)
資料表應該使用複數名稱,例如:Employees。若名稱由多個單詞組成,則只有最後一個單詞使用複數,例如:UserRoles。
如果資料表是屬於多對多關聯性(Many-To-Many Relationship)的聯合資料表(Junction Table),也就是該資料表的主索引鍵是由由資料表 A 和資料表 B 兩者的外部索引鍵所組成,就要連結資料表 A 和資料表 B 的名稱來命名。例如,Authors 資料表和 Titles 資料表之間具有多對多關聯性,而你需要一個資料表來維持這兩個資料表彼此之間的多關聯性,則這個資料表就應該命名為 TitlesAuthors。
資料欄位(Columns)
因為資料欄位是資料表的成員,所以欄位名稱不應再列入冗餘的資料表名稱。
檢視表(Views)
檢視表應比照資料表命名規則,但為有別於資料表,應加入前綴詞以避免混淆,例如:vw_Users。
預儲程序(Stored Procedures)
{Table Name}_{Action}[Qualifier]
- Table Name:預儲程序主要作用的資料表名稱。如果沒有作用在資料表上,就使用 Util(Utility的簡寫)來命名。
- Action:這部份指的是作用到資料表的主要動作,例如:Create、Get、Update、Delete。如果是 Util 程序,這個部份就不一定要加上。
- Qualifier:可以選擇性用來更清楚描述這個預儲程序要進行的動作。
觸發程序(Triggers)
{Prefix}_{Table Name}_{Actions Covered}
- Prefix:使用 trg_ 做為前綴詞,以別於其他資料庫物件。
- Table Name:執行觸發程序所在的資料表名稱。
- Actions Covered: 啟動觸發程序的 Insert、Update、Delete 選項。在此用 "Ins"、"Upd"、"Del" 來描述。
參考文章:
Database Object Naming Rules by sbates
DevCampus Database Naming Conventions by Jason Mauss
Database object naming conventions by Vyas
身為一個程式開發者,確實要讓程式、資料庫的可讀性與可維護性提高,利人利己的事,何樂而不為
小人物上籃
2008年5月2日 上午9:51真不錯的命名規則,感謝分享~
寂靜嶺
2013年12月30日 上午8:42