




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)庫結構命名規(guī)范目 錄第一章 介紹1. 目的2. 范圍3. 文檔約定4. 參考文檔第二章 命名及設計規(guī)范1. 數(shù)據(jù)庫表(Table)、字段(Field)命名及設計規(guī)范1.1 表命名規(guī)范1.2 列命名規(guī)范1.3 設計規(guī)范2. 存儲過程(Procedure)命名及設計規(guī)范2.1 命名規(guī)范2.2 設計規(guī)范3. 函數(shù)(Function)命名及設計規(guī)范3.1 命名規(guī)范3.2 設計規(guī)范4. 視圖(View)命名及設計規(guī)范4.1 命名規(guī)范4.2 設計規(guī)范5. 觸發(fā)器(Trigger) 命名及設計規(guī)范5.1 命名規(guī)范5.2 設計規(guī)范6. 主鍵(Primary Key)命名規(guī)范7. 外鍵(Foreign Ke
2、y)命名規(guī)范8. 索引(Index)命名規(guī)范9. 約束(Check、Constraint)命名規(guī)范 第一章 介紹1. 目的整理數(shù)據(jù)庫結構規(guī)范的目的是:增加數(shù)據(jù)庫對象的可讀性,在設計上盡量規(guī)范化,標準化,方便系統(tǒng)后期維護。2. 范圍如沒有特殊規(guī)定,本數(shù)據(jù)庫結構規(guī)范文檔適用于產品中心的所有開發(fā)項目的數(shù)據(jù)庫設計。3. 文檔約定在本規(guī)范中,采用標準的文檔書寫約定,章標題使用粗體三號字,節(jié)標題使用粗體的小四號宋體,小節(jié)標題采用粗體的五號字體,正文采用正常的五號宋體。術語解釋時術語部分加以下劃線表示。4. 參考文檔1. 百度文庫數(shù)據(jù)庫命名及設計規(guī)范V1.0.3 第二章 命名及設計規(guī)范1. 數(shù)據(jù)庫表(Tab
3、le)、字段(Field)命名及設計規(guī)范1.1表命名規(guī)范1) 表名用T_作為標識,表名一般不超過三個英文單詞,長度不能超過30個字符。表名必須是易于理解,能表達表的功能的英文單詞或縮寫英文單詞:如果業(yè)務表的含義用英文表述困難,也可用漢語拼音方式命名。無論是完整英文單詞還是縮寫英文單詞,抑或是漢語拼音,單詞必須大寫。表名中含有單詞全部采用單數(shù)形式,例如,使用USER,而不是USERS。2) 表中含有的單詞建議用完整的單詞,多個單詞間用下劃線(_)進行連接。如果導致表名長度過長,則從最后一個單詞開始,依次向前采用該單詞的縮寫。(如果沒有約定的縮寫,則采用該單詞前4個字母來表示)。3)
4、對于有主明細的表來說。明細表名為:主表名+_DTS。例如:采購定單的表名為:T_PO_ORDER,則采購定單的明細表名為:T_PO_ORDER_DTS。4) 一般表采用“系統(tǒng)名_+T_模塊名_表義名”格式構成,其他特殊情況如:l 若數(shù)據(jù)庫中只含有單個系統(tǒng),命名可去掉前綴“系統(tǒng)名_”,采用“T_模塊名_表義名”格式構成。l 若數(shù)據(jù)庫中只含有單個模塊,命名可去掉“模塊名”,采用“系統(tǒng)名_+T_表義名”格式構成。l 臨時表采用“系統(tǒng)名_+T_TEMP_表義名”格式構成。l 關聯(lián)表命名為RE_表A_表B,RE是Relative的縮寫,表A和表B均采用其表義名或縮寫形式。例如:A. 如果有一個模塊叫做B
5、ulletin Board System(縮寫為BBS),那么你的數(shù)據(jù)庫中所有對象的名稱都要加上這個前綴:T_BBS_+數(shù)據(jù)庫對象名稱,T_BBS_CUSTOMER_INFO標示論壇模塊中的客戶信息表。B. 如果有一個系統(tǒng)叫做行政服務(縮寫為XZFW),其中有一張表記錄補齊補正業(yè)務,由于用英文表達其含有較難或不準確,可以用漢語拼音為其命名:XZFW_T_ +拼音名,XZFW_T_ BUQIBUZHENG.1.2列命名規(guī)范1) 列統(tǒng)一采用“CL_”作為前綴。2) 采用有意義的列名,列名必須是易于理解,能表達列功能的英文單詞或縮寫英文單詞;如果列的含義用英文表述困難或不準確,也可用漢語拼音字母的方
6、式命名。無論是完整英文單詞還是縮寫英文單詞,抑或是漢語拼音,不超過三個英文單詞,長度不能超過30個字符,一般用完整的英文單詞,單詞必須大寫。在同一數(shù)據(jù)表內,不允許同時出現(xiàn)英文和拼音字母兩種命名方式的列。多個單詞間用下劃線(_)進行連接。例如:人員信息表中的電話號碼所在列可命名為:CL_TELEPHONE或CL_TEL。產品明細表中的產品名稱所在列名可用CL_PRODECT_NAME表示。辦件表中的審批事項名稱所在列名可用拼音字母的方式表示為CL_SPSXMC。3) 表中的主鍵名使用:“CL_ID”,其數(shù)據(jù)類型為varchar,主鍵數(shù)據(jù)一律采用java程序或存儲過程按照一定的規(guī)則生成,不允許采用
7、自增長的數(shù)據(jù),如identity,sequences等。如項目無特定需求,主鍵生成規(guī)則如下:主鍵采用字符型,長度為18位XXXXXX XXXXXXXXX XXX前六位代表記錄生成的年、月、日,如:Q71225中間九位代表記錄生成的時、分、秒、毫秒,如122009337后三位為生成的隨機碼,隨機碼采用java.util.Random生成。那么2007年12月26日15時44分產生的數(shù)據(jù)記錄,其主鍵應類似于0233901(注:主鍵生成的規(guī)則需抽象出具體方法放入底層架構中)4) 系統(tǒng)中屬于是業(yè)務范圍內的編碼的列,其代表一定的業(yè)務信息,比如辦件信息和單據(jù)的編號,這樣的列建議命名為:業(yè)務含義+“_COD
8、E”,其數(shù)據(jù)類型為varchar,該列需加唯一索引。如:組織機構代碼可命名為CL_ORGAN_CODE。5) 在命名表的列時,不要重復表名;例如,在名為T_SYS_USER的表中避免使用名為CL_USERNAME的列,應直接使用CL_NAME。6) 不要在列名中包含數(shù)據(jù)類型。7) 不要使用“ID”作為列名。8) 關聯(lián)列命名以“CL_關聯(lián)表的表義名(或縮寫)_列名”構成。1.3設計規(guī)范1) 所有列在設計時,除以下數(shù)據(jù)類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、varbinary外,必須有
9、默認值。字符型的默認值為一個空字符值串;數(shù)值型的默認值為數(shù)值0;邏輯型的默認值為數(shù)值0;其中:系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”;數(shù)值1表示為“真”。datetime、smalldatetime類型的列沒有默認值,必須為NULL。當列定義為字符串型時建議使用varchar而不用nvarchar。在Oracle中,不建議使用varchar,建議用varchar2或char類型。2) 盡量遵守第三范式的標準(3NF)A. 表內的每一個值只能表達一次;B. 表內的每一行都應當被唯一的標示;C. 表內不應該存儲依賴于其他鍵的非鍵信息;D. 如果列事實上是與其它表的關鍵字相關聯(lián)而未設計為外鍵引用,需建
10、索引;E. 如果列與其他表的列相關聯(lián),需建索引;F. 如果列需做模糊查詢之外的條件查詢,需建索引;G. 除了主關鍵字允許建立簇索引外,其他列所建索引必須為非簇索引。3) 列必須填寫描述信息2. 存儲過程(Procedure)命名及設計規(guī)范2.1命名規(guī)范1) 存儲過程的命名遵循以下命名規(guī)范:“系統(tǒng)名_+PR_系統(tǒng)模塊縮寫(與表前綴類似)_功能標識_代表存儲過程操作的主要表義名(不帶前綴)或功能的英文單詞或英文單詞縮寫”,長度不能超過30個字符。2) 如 果一個存儲過程只對一個表進行操作,建議存儲過程的名稱就用存儲過程所操作的表的表名(不帶前綴)。這樣有利于根據(jù)表名找到相應的存儲過程。為了在眾多的
11、 存儲過程中能很快的找到并維護存儲過程,我們按存儲過程的作用將系統(tǒng)的存儲過程進行以下的分類及命名:(以下示例假設存儲過程所在的模塊名為ORG)作用第一前綴第二前綴名(示例)用于新增的存儲過程PR_ORG_ADD_EMPLOYEE用于修改的存儲過程PR_ORG_UPD_EMPLOYEE用于刪除的存儲過程PR_ORG_DEL_EMPLOYEE用于單據(jù)查詢的存儲過程PR_ORG_QUERY_EMPLOYEE用于報表統(tǒng)計的存儲過程PR_ORG_RPT_STATSEMPLOYEE用于一些特殊過程處理的存儲過程PR_ORG_OTH_SETSYSTEMMESSAGE(注:在Oracle中應將存儲過程進行分類
12、,按照分類建立不同的PACKAGE,存儲過程要從屬于某一個PACKAGE。)3) 如果系統(tǒng)中的存儲過程只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為“PR+所屬的級次+_+后面的部分”表明:其調用了第(所屬級次-1)級的存儲過程例如:1. PR1_ORG_ADD_SUBJECT(沒有調用其它存儲過程)2. PR2_ORG_UPD_SUBJECT(調用了第1級的存儲過程)3. PR3_ORG_QUERY_SUBJECT(調用了第2級的存儲過程)2.2設計規(guī)范在存儲過程中必須說明以下內容:1) 目的:說明此存儲過程的作用。2) 作者:首次創(chuàng)建此存儲過程的人的姓名。3)
13、創(chuàng)建日期:創(chuàng)建存儲過程時的日期。4) 修改記錄:修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼塊和新增的正確代碼塊前后注明修改順序號。5) 對存儲過程各參數(shù)及變量的中文注解。示例如下:/*目的:根據(jù)部門與物料和會計區(qū)間查詢生產現(xiàn)場領料匯總報表作者:張三創(chuàng)建日期:-09-13*/*修改順序號:log1修改者:李四修改日期:-09-14修改原因:(具體原因詳細描述)*/CREATE PROCE
14、DURE PR_GETLMSSUMProductionType int=1, -生產類型(1-自制;-委外加工)DeptID int=0, -生產部門ItemID int=0, -物料StartDate datetime='2001-11-26', -會計區(qū)間開始日期EndDate datetime='2002-12-25', -會計區(qū)間截止日期AS/*log1 old-自制領料INSERT INTO #LMSDtsSELECT DEPTID FROM T_DEPT.end log1 old*/-log1 new-自制領料INSERT INTO #LMSDtsS
15、ELECT DEPTID FROM T_DEPT.-end log1 new3. 函數(shù)(Function)命名及設計規(guī)范3.1命名規(guī)范1) 函數(shù)的命名遵循以下命名規(guī)范:“系統(tǒng)名_+FU_+系統(tǒng)模塊縮寫(與表前綴類似)+_+功能標識+代表函數(shù)操作的主要表義名或功能的英文單詞或英文單詞縮寫”,長度不能超過30個字符。2) 如果一個函數(shù)只對一個表進行操作,建議函數(shù)名就用函數(shù)所操作的表的表義名。這樣有利于根據(jù)表名找到相應的函數(shù)。為了在眾多的函數(shù)中能很快的找到并維護函數(shù),我們按函數(shù)的作用將系統(tǒng)的函數(shù)進行以下的分類及命名:(以下示例假設函數(shù)所在的模塊名為ORG)作用第一前綴第二前綴名(功能標識)示例用于新
16、增的函數(shù)FU_ORG_ADD_EMPLOYEE用于修改的函數(shù)FU_ORG_UPD_EMPLOYEE用于刪除的函數(shù)FU_ORG_DEL_EMPLOYEE用于單據(jù)查詢的函數(shù)FU_ORG_QUERY_EMPLOYEE用于報表統(tǒng)計的函數(shù)FU_ORG_RPT_STATSEMPLOYEE用于一些特殊過程處理的函數(shù)PR_ORG_OTH_SETSYSTEMMESSAGE3) 如果系統(tǒng)中的函數(shù)只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為“FU+所屬的級次+_+后面的部分”表明:其調用了第(所屬級次-1)級的函數(shù)。例如:1. FU1_ORG_ADD_SUBJECT(沒有調用其他函數(shù))
17、2. FU2_ORG_UPD_SUBJECT(調用了第1級的函數(shù))3. FU3_ORG_QUERY_SUBJECT(調用了第2級的函數(shù))3.2設計規(guī)范在存儲過程中必須說明以下內容:1) 目的:說明此函數(shù)的作用。2) 作者:首次創(chuàng)建此函數(shù)的人的姓名。3) 創(chuàng)建日期:創(chuàng)建函數(shù)時的日期。4) 修改記錄:修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼塊和新增的正確代碼塊前后注明修改順序號。5) 對
18、函數(shù)各參數(shù)及變量的中文注解。示例如下:/*目的:查詢生成現(xiàn)場領料匯總報表作者:張三創(chuàng)建日期:-09-13*/*修改順序號:log1修改者:李四修改日期:-09-14修改原因:(具體原因詳細描述)*/CREATE FUNCTION FU_GETLMSSUMProductionType int=1, -生產類型(1-自制;-委外加工)DeptID int=0, -生產部門ItemID int=0, -物料StartDate datetime='2001-11-26', -會計區(qū)間開始日期EndDate datetime='2002-12-25', -會計區(qū)間截止日期
19、AS/*log1 old-自制領料INSERT INTO #LMSDtsSELECT DEPTID FROM T_DEPT.end log1 old*/-log1 new-自制領料INSERT INTO #LMSDtsSELECT DEPTID FROM T_DEPT.-end log1 new4. 視圖(View)命名及設計規(guī)范4.1命名規(guī)范1) 視圖的命名遵循以下命名規(guī)范:“系統(tǒng)名_+V_+系統(tǒng)模塊縮寫(與表前綴相似)+_+功能標識+代表視圖查詢的主要表名(不要帶前綴)或功能的英文單詞或英文單詞縮寫”,長度不能超過30個字符。2) 如果一個視圖只對一個表進行查詢,建議視圖名就用視圖查詢的表
20、的名(不帶前綴)。這樣有利于根據(jù)表名找到相應的視圖,為了在眾多的視圖中能很快的找到并維護視圖,我們按其作用系統(tǒng)的視圖進行以下的分類及命名:(以下示例假設視圖所在的模塊名為ORG)作用第一前綴第二前綴名(功能標識)示例用于單據(jù)查詢的視圖V_ORG_QUERY_EMPLOYEE用于報表統(tǒng)計的視圖V_ORG_RPT_STATSEMPLOYEE用于一些特殊過程處理的視圖V_ORG_OTH_SETSYSTEMMESSAGE3) 如果系統(tǒng)中的視圖只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為“V+所屬的級次+_+后面的部分”表明:其調用了第(所屬級次-1)級的視圖。例如:1.
21、V1_ORG_ADD_SUBJECT(沒有調用其他視圖)2. V2_ORG_UPD_SUBJECT(調用了第1級的視圖)3. V3_ORG_QUERY_SUBJECT(調用了第2級的視圖)4.2設計規(guī)范在視圖中必須說明以下內容:1) 目的:說明此視圖的作用。2) 作者:首次創(chuàng)建此視圖的人的姓名。3) 創(chuàng)建日期:創(chuàng)建視圖時的日期。4) 修改記錄:修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼
22、塊和新增的正確代碼塊前后注明修改順序號。5) 對視圖各參數(shù)及變量的中文注解。示例如下:/*目的:查詢本月所要培訓的科目作者:張三創(chuàng)建日期:-09-13*/*log1 oldCREATE VIEW V_ADD_SUBJECTASSELECT SUBJECTCODE AS課程編號FROM T_SUBJECT.end log1 old*/*修改順序號:log1修改者:李四修改日期:-09-14修改原因:學員不需要培訓,將不需要培訓的課程去掉。*/-log1 newCREATE VIEW V_ADD_SUBJECTASSELECT SUBJECTCODE AS課程編號FROM T_SUBJECT.-e
23、nd log1 new5. 觸發(fā)器(Trigger)命名及設計規(guī)范5.1命名規(guī)范觸發(fā)器命名遵循如下規(guī)范:“系統(tǒng)名_+TR_+表義名(不能帶前綴)+_+觸發(fā)類型簡寫”,觸發(fā)器名需大寫。Insert觸發(fā)器加_INS;Update觸發(fā)器加_UPD;Delete觸發(fā)器加_DEL。如:T_SYS_USER表的Insert觸發(fā)器為TR_SYS_USER_INS。5.2設計規(guī)范在觸發(fā)器中必須說明以下內容:1) 目的:說明此觸發(fā)器的作用。2) 創(chuàng)建者:首次此觸發(fā)器的創(chuàng)建人的姓名。3) 修改記錄:修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼塊和新增的正確代碼塊前后注明修改順序號。4) 對其中各參數(shù)及變量的中文注解。示例如下:/*目的:刪除TR_SYS_A表中關聯(lián)的記錄作者:張三創(chuàng)建日期:-09-13*/*log1 oldCREATE TRIGGER TR_SYS_A ON T_SYS_A FOR DELETEASIF ROWCOUNT=0 -no rows deleted RETURNDELETE T_SYS_B FROM T_SYS_B b,delete
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45169-2025增材制造金屬制件殘余應力聲束控制法
- GB/T 45142-2025海洋溢油污染生態(tài)修復監(jiān)測和效果評估技術指南
- GB/T 45221-2025化學品EASZY試驗利用轉基因tg(cyp19a1b:GFP)斑馬魚胚胎通過雌激素受體檢測內分泌活性物質
- 鄉(xiāng)村地基出售合同范本
- 2025年鐵嶺考貨運從業(yè)資格證
- 2025年永州貨運從業(yè)資格證怎么考試
- 加工合同范本道客
- 買車庫出售合同范本
- it購銷合同范本
- 醫(yī)院業(yè)務合同范本
- 基于核心素養(yǎng)的學習觀和教學觀
- 感染性腹瀉及其防控措施
- 第二篇-安全操作規(guī)程
- 《多維度兒童智力診斷量表》MIDSC的編制
- 罪犯教育學課程
- 紀檢監(jiān)察辦案談話應注意的問題研討
- 超實用工程結算單excel模板
- 一年級小學生新學期開學計劃
- ISO9001-2015質量手冊和全套程序文件
- 醫(yī)療器械產品放行程序
- 07j306排水溝圖集標準
評論
0/150
提交評論