數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范_第1頁
數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范_第2頁
數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范_第3頁
數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范_第4頁
數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1 相關(guān)的設(shè)計(jì)規(guī)范:1.1 采用有意義的字段名盡可能地把字段描述的清楚些。當(dāng)然,也別做過頭了,比如CustomerShippingAddressStreetLine1 雖然很富有說明性,但沒人愿意鍵入這么長的名字,具體尺度就在你的把握中。每個(gè)單詞的首個(gè)字母要求用大寫!不要用下劃線來連接每個(gè)單詞.1.2 遵守3NF 標(biāo)準(zhǔn)3NF 規(guī)定:A.表內(nèi)的每一個(gè)值都只能被表達(dá)一次。B.表內(nèi)的每一行都應(yīng)該被唯一的標(biāo)識(有唯一鍵。C.表內(nèi)不應(yīng)該存儲依賴于其他鍵的非鍵信息。1.3 小心保留詞要保證你的字段名沒有和保留詞、數(shù)據(jù)庫系統(tǒng)或者常用訪問方法沖突,比如,寫的一個(gè)ODBC 連接程序里有個(gè)表,其中就用了DESC

2、作為說明字段名。后果可想而知!DESC 是DESCENDING 縮寫后的保留詞。表里的一個(gè)SELECT *語句倒是能用,但我得到的卻是一大堆毫無用處的信息。1.4 保持字段名和類型的一致性在命名字段并為其指定數(shù)據(jù)類型的時(shí)候一定要保證一致性。假如字段在某個(gè)表中叫做“AgreeMentNumber”,你就別在另一個(gè)表里把名字改成“ref1”。假如數(shù)據(jù)類型在一個(gè)表里是整數(shù),那在另一個(gè)表里可就別變成字符型了。2 命名規(guī)則: 所有的命名單詞的首字都應(yīng)大寫。2.1 數(shù)據(jù)庫(Database的定義數(shù)據(jù)庫名稱 = 數(shù)據(jù)庫內(nèi)容標(biāo)識(首字大寫2.2 表(Table的定義命名應(yīng)盡量反映存儲的數(shù)據(jù)內(nèi)容。表名前綴:模塊

3、或數(shù)據(jù)庫的縮寫,如BBS、OnlineSale(OS。表名稱 = 表名前綴 + 表內(nèi)容標(biāo)識(首字大寫如ClientInfo相關(guān)聯(lián)的一系的表以CI作為前綴,即有表名:CI_History、CI_Contact、CI_Business2.3 字段(Field的定義字段是數(shù)據(jù)庫中的用途最廣泛的,它的類型非常多,所以必須用正確的英文單詞來表示它的意思。如:bit類型的前綴為Is+功能;Int為功能+Count;money為功能+Price2.4 視圖名視圖的名稱 = "vw" + 視圖內(nèi)容標(biāo)識(首字大寫如 vwUserPerm2.5 觸發(fā)器名觸發(fā)類型觸發(fā)標(biāo)識-Insert iDel

4、ete dUpdate u觸發(fā)名= "tr" + 觸發(fā)標(biāo)識 + 相應(yīng)的表名如:triClient,trdClient。2.6 存儲過程名存儲過程功能存儲過程功能前綴-添加 a更新 u刪除 d查詢或其它 o存儲過程名稱 = 存儲過程功能前綴 + 存儲過程內(nèi)容標(biāo)識(首字大寫如 spoChkUserPerm2.7 變量名每個(gè)單詞的首個(gè)字母為大寫,如EmployeeName。2.8 命名中其他注意事項(xiàng)禁止使用中文命名!命名都不得超過30個(gè)字符的系統(tǒng)限制,變量名的長度限制為29(不包括標(biāo)識字符。命名都采用英文字符,每個(gè)單詞的首個(gè)字母要大寫2.9 SQL語句的編寫規(guī)范數(shù)據(jù)庫中存儲過程和

5、觸發(fā)器中涉及大量的SQL語句,對SQL語句的編寫規(guī)范如下:關(guān)鍵字大寫:在SQL語句的編寫中,凡是SQL語句的關(guān)鍵字一律大寫,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、 UPDATE、 INSERT INTO、 SET、 BEGIN、END .2.10 Ruleru+Rule標(biāo)識2.11 主鍵pk+表名+主鍵標(biāo)識2.12 外鍵fk+表名+主表名+外鍵標(biāo)識2.13 索引idx+字段標(biāo)識2.14 Defaultdf+Default標(biāo)識3 編程結(jié)構(gòu)和描述SQL SERVER系統(tǒng)中,一個(gè)批處理是從客戶傳給服務(wù)器的一個(gè)完整的包,可以包含若干條SQL語句。批處理中的語句

6、是作為一組去進(jìn)行語法分析、編譯和執(zhí)行的。觸發(fā)器、存儲過程等數(shù)據(jù)對象則是將批處理永久化的方法。3.1 注釋注釋可以包含在批處理中。在觸發(fā)器、存儲過程中包含描述性注釋將大大增加文本的可讀性和可維護(hù)性。本規(guī)范建議:1、注釋以英文為主。實(shí)際應(yīng)用中,發(fā)現(xiàn)以中文注釋的SQL語句版本在英文環(huán)境中不可用。為避免后續(xù)版本執(zhí)行過程中發(fā)生某些異常錯(cuò)誤,建議使用英文注釋。2、注釋盡可能詳細(xì)、全面。創(chuàng)建每一數(shù)據(jù)對象前,應(yīng)具體描述該對象的功能和用途。傳入?yún)?shù)的含義應(yīng)該有所說明。如果取值范圍確定,也應(yīng)該一并說明。取值有特定含義的變量(如boolean類型變量,應(yīng)給出每個(gè)值的含義。3、注釋語法包含兩種情況:單行注釋、多行注釋

7、單行注釋:注釋前有兩個(gè)連字符(-,最后以行尾序列(CR-LF結(jié)束。一般,對變量、條件子句可以采用該類注釋。多行注釋:符號/*和*/之間的內(nèi)容為注釋內(nèi)容。對某項(xiàng)完整的操作建議使用該類注釋。4、注釋簡潔,同時(shí)應(yīng)描述清晰。3.2 函數(shù)注釋:編寫函數(shù)文本-如觸發(fā)器、存儲過程以及其他數(shù)據(jù)對象-時(shí),必須為每個(gè)函數(shù)增加適當(dāng)注釋。該注釋以多行注釋為主,主要結(jié)構(gòu)如下:/* * 存儲過程:讀取用戶所分配的操作模塊及具體權(quán)限* 編制者:saiko* 修改人:* 輸入?yún)?shù):共有2個(gè)參數(shù)* cUserNo:用戶編號* cUserPassword:驗(yàn)證密碼* 輸出參數(shù):eResult 1. 成功= 銷售0001 2. 失

8、敗 =Null 3.與 eResult 無關(guān)輸出是記錄集* 調(diào)用例子:declare eResult varchar(50 exec uChkUserPerm'0755' ,'123456', '銷售'* 說明:* */CREATE PROCEDURE spoxxx3.3 條件執(zhí)行語句ifelse條件語句塊(statenemt block,以beginend為邊界僅在if子句的條件為真時(shí)才被執(zhí)行。為提高代碼的可讀性,建議嵌套不多于5層。還有,當(dāng)嵌套層次太多時(shí),應(yīng)該考慮是否可以使用case語句。3.4 重復(fù)執(zhí)行while和跳轉(zhuǎn)語句goto需要多次執(zhí)

9、行的語句,可以使用while結(jié)構(gòu)。其中,控制while循環(huán)的條件在任何處理開始之前需要先執(zhí)行一次。循環(huán)體中的保留字break無條件的退出while 循環(huán),然后繼續(xù)處理后續(xù)語句;保留字continue重新計(jì)算while條件,如果條件為真,則從循環(huán)開始處重新執(zhí)行各語句。使用跳轉(zhuǎn)語句goto和標(biāo)簽label也可以方便地實(shí)現(xiàn)循環(huán)和其他更靈活的操作。SQL SERVER僅具有單通道語法分析器,因此不能解析對尚未創(chuàng)建的對象所做的前向參考。換言之,跳轉(zhuǎn)到某標(biāo)簽的后續(xù)語句應(yīng)該是可執(zhí)行的(如不存在可能尚未創(chuàng)建的數(shù)據(jù)對象。3.5 書寫格式數(shù)據(jù)庫服務(wù)器端的觸發(fā)器和存儲過程是一類特殊的文本,為方便開發(fā)和維護(hù),提高代碼

10、的易讀性和可維護(hù)性。規(guī)范建議按照分級縮進(jìn)格式編寫該文本。順序執(zhí)行的各命令位于同一級;條件語句塊(statenemt block,以beginend 為邊界位于下一級,類推。SQL語句是該文本的主體。為適應(yīng)某些教復(fù)雜的用戶需求,SQL語句可能比較龐大。為方便閱讀和維護(hù),規(guī)范建議按照SQL語句中系統(tǒng)保留字的關(guān)鍵程度再劃分為三級。具體分級請參照下表。其中,非系統(tǒng)保留字(如字段名、數(shù)據(jù)表名、標(biāo)點(diǎn)符號相對本級保留字再縮進(jìn)一級。多個(gè)連續(xù)的非保留字可以分行書寫,也可以寫在同一行。當(dāng)WHERE包含的條件子句教復(fù)雜時(shí),應(yīng)該每行只寫一個(gè)條件分句,并為重要的條件字句填寫單行注釋。在保證基本縮進(jìn)格式的前提下,可以通過

11、對齊某些重要關(guān)鍵字(如條件關(guān)鍵字AND、OR,符號 = 、 <> 等來進(jìn)一步提高文本的易讀性和可維護(hù)性。相鄰兩級的縮進(jìn)量為10個(gè)空格。這也是ISQL編輯器默認(rèn)的文本縮進(jìn)量。另外,在ISQL編輯器中,一個(gè)TAB鍵也相當(dāng)于10個(gè)空格。注:按照功能,四類SQL語句(SELECT、INSERT、UPDATE、DELETE的關(guān)鍵字可以劃分為三類:主關(guān)鍵字、次關(guān)鍵字、一般關(guān)鍵字。如下表所示:主關(guān)鍵字次關(guān)鍵字一般關(guān)鍵字SELECTINSERT (INTOUPDATEDELETE FROMWHEREVALUESINSERTSELECTFROM 語句中的SELECT和FROM ANDORBETWEE

12、NINLIKE3.6 字體系統(tǒng)保留字應(yīng)大寫,包括系統(tǒng)公共變量等。其他字符(如用戶自定義變量、用戶自定義數(shù)據(jù)對象名小寫。需要特殊強(qiáng)調(diào)的部分可以大寫。一條完整注釋語句的首字符應(yīng)大寫。對某變量、某條件字句的注釋可以全部使用小寫。通過下一節(jié)中生成表r_a的刪除觸發(fā)器的實(shí)例可以部分說明對象命名、注釋、基本書寫格式和字符大小寫方面的一些注意事項(xiàng)。4 觸發(fā)器編程規(guī)范4.1 范例下面通過一個(gè)例子,說明觸發(fā)器編程中應(yīng)遵守的規(guī)范:/* delete related r_a according to deleted table */CREATE TRIGGER r_a_d ON r_aFOR DELETEASIF ROWCOUNT = 0 -no rows deletedRETURN/* delete r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論