在介紹SQL命名規(guī)范前,我們先看一下常見的命名規(guī)范:
匈牙利命名法:基本要求是:首字母小寫,變量名 = 屬性+類型+對象描述,其中每一個對象的名稱都要求有明確的含義,可以取對象名稱的全稱或名字的一部分。
Camel(駝峰)命名法:有兩種形式分別為
- 小駝峰命名法:比如printBill,開始的第一個單詞小寫,之后每個單詞的首字母大寫。在JAVA中,屬性名和方法名也常用這種命名方法。
- 大駝峰命名法:比如FirstName,每個單詞的首字母都采用大寫字母,也被稱為Pascal命名法
- 單詞之間加下劃線:比如student_name,我們經(jīng)常在對文件夾命名時采用這種方法
在了解了常見命名規(guī)范后我們再看一下SQL命名規(guī)范:
一般情況:
- 名稱是唯一的,且不是保留關(guān)鍵字
- 長度最多為30個字節(jié)——一般是30個字符,除非使用多字節(jié)字符集
- 名稱中的字符范圍為:字母,下劃線,數(shù)字
- 名稱必須以字母開頭,且不得以下劃線結(jié)尾
- 避免使用連續(xù)多個下劃線,難以閱讀和分辨
- 避免使用縮寫,除非的公認的都能理解的縮寫
表
- 使用復(fù)數(shù)形式,比如:employees,students
- 不要添加tbl前綴或者任何其他描述性前綴
- 不要有相同的名稱。表名和列名也不能相同
- 在可能的情況下,避免將兩個表名連接在一起作為關(guān)系表的名稱,比如比起 student_course,score更好
對于區(qū)分不同功能的表,可以按照下面規(guī)范添加前綴: - 系統(tǒng)表(S_): System,系統(tǒng)配置相關(guān)的基本信息表,比如系統(tǒng)用戶表(S_USER),操作日志(S_OPERATION_LOG),登錄日志(S_LOGIN_LOG),系統(tǒng)字典(S_DICTIONARY)等
- 字典表(D_):Dictionary,非系統(tǒng)字典外的字典表。除了數(shù)據(jù)庫中的通用字典表,還有一些常見的表,比如:地區(qū)表(D_REGION)等
- 中間表(R_):Relationship,多對多關(guān)系的中間表。命名方式建議:R_主表名_從表名
- 業(yè)務(wù)表(B_):Business,核心業(yè)務(wù)涉及的基本信息表,比如在線商城的訂單業(yè)務(wù)。
列
- 使用單數(shù)名稱
- 不要添加與表名相同的列
- 始終使用小寫字母,單詞間用下劃線分隔
約束的命名
這里對外鍵約束做一些要求,因為外鍵約束表明表與表之間的關(guān)系,建議外鍵約束以fk做前綴,比如:fk_score_student
其他功能塊的命名
視圖的命名可以于表命名相似