版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MIS系統(tǒng)Oracle編碼規(guī)范變更記錄日期作者版本變更說明登記人2012-06-17zhangyabin1.0創(chuàng)建zhangyabin1、編寫目的 使用統(tǒng)一的命名和編碼規(guī)范,使數(shù)據(jù)庫命名及編碼風(fēng)格標準化,以便于閱讀、理解和繼承。 2、適用范圍 本規(guī)范適用于公司范圍內(nèi)所有以O(shè)RACLE作為后臺數(shù)據(jù)庫的應(yīng)用系統(tǒng)和項目開發(fā)工作。 3、對象命名規(guī)范 3.1 數(shù)據(jù)庫和SID 數(shù)據(jù)庫名定義為系統(tǒng)名+模塊名 全局數(shù)據(jù)庫名和例程SID 名要求一致 因SID 名只能包含字符和數(shù)字,所以全局數(shù)據(jù)庫名和SID 名中不能含有“_”等字符 3.2 表相關(guān) 3.2.1 表空間 面向用戶的專用數(shù)據(jù)表空間以用戶名+_+dat
2、a命名 ,但在MIS系統(tǒng)中,sysnet用戶下按層來給表空間命名,如ODS表空間,BASE,MID等。 面向用戶的專用索引表空間以用戶名+_+idx命名,MIS系統(tǒng)目前只有一個用戶,所以使用系統(tǒng)名+idx命名,如MIS_IDX表空間。 面向用戶的專用臨時表空間以用戶名+_+tmp命名 面向用戶的專用回滾段表空間以用戶名+_+rbs 命名 面向應(yīng)用的表空間以應(yīng)用名+_data/應(yīng)用名+_idx/應(yīng)用名+_tmp/應(yīng)用名+_rbs 命名 LOB 段數(shù)據(jù)專用表空間以其數(shù)據(jù)表空間+_+lobs 命名,如上例中數(shù)據(jù)表空間為Aud_data,則LOB 段表空間可命名為Aud_data_lobs 3.2.2
3、 表空間文件 表空間文件命名以表空間名+兩位數(shù)序號(序號從01開始)組成,如Aud_data01 等 3.2.3 表 表命名要遵循以下原則: 一般表采用“系統(tǒng)名+t_+模塊名+_+表義名” 格式構(gòu)成 ,但在MIS系統(tǒng)中因為只有sysnet一個用戶,MIS一個系統(tǒng),所以,表命名以模塊名+_+表義名構(gòu)成,具體命名規(guī)則如下:維表命名:D_+維度名,維度名一般為維度英文名字或縮寫。如d_org ,d_product等ODS層:表名與核心庫保持一致;BASE層:根據(jù)模塊不同,承保模塊則以f_policy開頭,理賠以f_claim開頭,后面帶有evt +_+表義。如 f_policy_evt , f_po
4、licy_evt_fee;MID層:根據(jù)模塊不同,承保模塊則以f_policy開頭,理賠以f_claim開(除報案外,報案為f_regist開頭),后面加表義名。如:f_policy_chg_add_snap ,f_regist_mid。主題層:根據(jù)模塊不同,承保模塊則以f_policy開頭,理賠以f_claim開頭,如果是車險報表則為f_policy_car開頭或 f_claim_car,管理報表以f_Opertion或f_ope開頭,后面+表義名。如果報表是日歷年則在表義名中加cale,對應(yīng)的承保年則一般是去掉cale。如:f_policy_car_inti_cale_year, f_po
5、licy_car_inti_cale_year , f_opertion_car_cale。 若數(shù)據(jù)庫中只含有單個模塊,命名可采用“系統(tǒng)名+t_+表義名”格式構(gòu)成 模塊名或表義名均以其英文單詞或英文單詞縮寫來命名,表義名中英文單詞均采用小寫,且字符間不加分割符 表別名命名規(guī)則:取表義名的前4 個字符加最后一個字符。如果存在沖突,適當增加字符 臨時表采用“系統(tǒng)名+t_tmp_+表義名” 格式構(gòu)成,在MIS系統(tǒng)庫中一位只有一個MIS系統(tǒng),在已有的存儲過程中,遵循以前的規(guī)則,采用t_+模塊名_+表義名,如:T_Claim_Inte_REGIST_Cancel。對于僅供個人測試的臨時表,命名規(guī)則改為
6、t_tmp_表義名_+建表人名縮寫,并要確保在使用完該臨時表之后,及時刪除。例如,t_tmp_policy_evt_zn。 關(guān)聯(lián)表命名為Re_表A_表B,Re 是Relative的縮寫,表A 和表B均采用其表義名或縮寫形式。3.2.4 屬性(列或字段) 屬性命名遵循以下原則: 采用有意義的列名,為實際含義的漢語拼音的首字符,且字符間不加任何分割符 屬性名前不要加表名等作為前綴 屬性后不加任何類型標識作為后綴 不要使用“ID”作為列名 關(guān)聯(lián)字段命名以 “cd+_+關(guān)聯(lián)表的表義名(或縮寫)+_+字段名”進行 3.2.5 主鍵 任何表都必須定義主鍵 表主鍵命名為:pk+_+表名(或縮寫)
7、+_+主鍵標識,如pk_policy_evt_policyno 3.2.6 外鍵 表外鍵命名為:fk+_+表名(或縮寫)+_主表名(或縮寫)+_+主鍵標識,如pk_policy_evt_endorno3.2.7 CHECK約束 CHECK 約束命名為: “chk+_+CHECK約束的列名(或縮寫)” 3.2.8 UNIQUE約束 UNIQUE 約束命名為: “unq+_+UNIQUE約束的列名(或縮寫)” 3.2.9 索引 索引的命名為:“表名(或縮寫)+_+列名+_idx”。其中多單詞組成的屬性列列名取前幾個單詞首字符再加末單詞首字符組成.如f_policy_evt表policyno 上的i
8、ndex 為:f_policy_evt_policyno_index 3.2.10 觸發(fā)器 AFTER型觸發(fā)器 系統(tǒng)名+tr_+<表名>_+ +_row BEFORE型觸發(fā)器 系統(tǒng)名+tr_+<表名>_+bef_+_row INSTEAD OF型觸發(fā)器 系統(tǒng)名+ti_+<表名>+_+_row 各種類型的觸發(fā)器中 i,u,d 分別表示insert、update 和delete行級觸發(fā)器,后加_row 標識,語句級觸發(fā)器不加,如 yddftr_CSH_i_row 3.2.11 簇 簇以簇中要存儲的各個表(或表別名)及表間加and的組成 命名,即表“A+And+表
9、B”,如存儲GR(工人)和GRJN(工人技能)表的簇命名為GRAndGRJN 3.3 視圖 視圖命名以系統(tǒng)名v_+模塊名作為前綴,其他命名規(guī)則和表的命名類似 3.4 序列 序列命名以seq_+含義名組成 3.5 同義詞 同義詞命名與其基礎(chǔ)對象的名稱一致,但要去除其用戶前綴或含有遠程數(shù)據(jù)庫鏈接的后綴 3.6 存儲對象相關(guān) 3.6.1 存儲過程 存儲過程命名由“ETL_+ODS/D/F+_+存儲過程標識(縮寫)”。其中ETL_ODS開頭的,代表ODS層數(shù)據(jù)加工過程,以ETL_D開頭的,代表維表的加工過程,以ETL_F開頭的為基礎(chǔ)層到主題層的數(shù)據(jù)加工過程。存儲過程標識主要以模塊名+實際含義的英文單詞
10、或英文單詞縮寫構(gòu)成,并用下劃線分割各個組成部分。模塊名跟前面表的命名規(guī)范保持一致,例如,ETL_F_Policy_Evt_Start_Add:承保事務(wù)事實開始,ETL_F_Policy_Car_Inti_Cal_Add:承保綜合分析車險日歷年制-險種,ETL_D_PRODUCT_ADD:產(chǎn)品維表增量 3.6.2 函數(shù) 函數(shù)命名由“系統(tǒng)名+f+_+函數(shù)標識”組成 3.6.3 包 包命名由“系統(tǒng)名+pkg+_+包標識”組成 3.6.4 函數(shù)文本中的變量采用下列格式命名: 參數(shù)變量命名采用“i (o或io)+_+名稱”形式,前綴i 或o 表輸入還是輸出參數(shù) 過程變量命名采用“l(fā)+_+名稱”形式 全局
11、包變量命名采用“g+_+名稱”形式 游標變量命名采用“名稱+_+cur”形式 常量型變量命名采用“c+_+名稱”形式 變量名采用小寫,若屬于詞組形式,用下劃線分隔每個單詞 變量用來存放表中的列或行數(shù)據(jù)值時,使用%TYPE、%ROWTYPE 方式聲明變量,使變量聲明的類型與表中的保持同步,隨表的變化而變化 3.7 用戶及角色 用戶命名由“系統(tǒng)名稱+_+user+_+名詞(或縮寫)或名詞短語(或縮寫)”組成 角色命名由“系統(tǒng)名稱+_+role+_+名詞(或縮寫)或名詞短語(或縮寫)”組成 3.8 數(shù)據(jù)庫鏈接 數(shù)據(jù)庫鏈接命名由“遠程服務(wù)器名+_+數(shù)據(jù)庫名+_+link”組成 若遠程服務(wù)器名和數(shù)據(jù)庫名
12、一致,上式“_+數(shù)據(jù)庫名”部分省去 3.9 命名中的其它注意事項 命名都不得超過30個字符。 不要在對象名的字符之間留空格 小心保留詞,要保證你的命名沒有和保留詞、數(shù)據(jù)庫系統(tǒng)或者常用訪問方法沖突4、 編碼規(guī)范 4.1 一般性注釋 1. 注釋盡可能簡潔、詳細而全面 2. 創(chuàng)建每一數(shù)據(jù)庫對象時都要加上COMMENT ON注釋,以說明該對象的功能和用途;3. 建表時,對某些數(shù)據(jù)列也要加上COMMENT ON注釋,以說明該列和/或列取值的含義。如:XX 表中有CZZT列屬性為NUMBER(10, 0)可加COMMENT ON 注釋如下COMMENT ON COLUMN XX.CZZT IS '
13、0 = 正常, 1 = 等待, 2 = 超時, 3 = 登出' 4. 注釋語法包含兩種情況:單行注釋、多行注釋 單行注釋:注釋前有兩個連字符(-),一般對變量、條件子句可以采用該類注釋。 多行注釋:符號/*和*/之間的內(nèi)容為注釋內(nèi)容。對某項完整的操作建議使用該類注釋。 4.2 函數(shù)文本注釋 1. 在每一個塊和過程(存儲過程、函數(shù)、包、觸發(fā)器、視圖等)的開頭放置注釋,任何時間對過程進行任何修改 ,都需要在過程變更信息處,填寫變更信息。 /* *-過程名 :*-功能描述 :* -輸入?yún)?shù)說明:*-輸出參數(shù)說明:*-創(chuàng)建人: *-創(chuàng)建時間 *-過程更改信息 時間 變更人 變更原因 變更內(nèi)容
14、*/ CREATE OR REPLACE PROCEDURE dfsp_xxx 2 傳入?yún)?shù)的含義應(yīng)該有所說明。如果取值范圍確定,也應(yīng)該一并說明。取值有特定含義的變量(如boolean類型變量),應(yīng)給出每個值的含義。 3. 在每一個變量聲明的旁邊添加注釋。說明該變量要用作什么 通常,簡單使用單行注釋就行了,例如l_sfzh CHAR(11) -身份證號碼 4. 在塊的每個主要部分之前添加注釋 在塊的每個主要部分之前增加注釋,解釋下組語句目的,最好是說明該段語句及算法的目的以及要得到的結(jié)果,但不要對其細節(jié)進行過多的描述 5. 刪除現(xiàn)有程序時,在刪除代碼前后加上 /* deleted by XXX
15、 on yyyy-mm-dd ,reason start */ 和 /* delete by XXX on yyyy-mm-dd end */。 如果只是刪除某個字段或是一行,則直接在刪除的行后面加上 /* deleted by XXX on yyyy-mm-dd,reason */。對于reason 可以簡單說明原因或直接寫cq 號,便于后續(xù)人員進行追蹤。6 增加代碼時,在增加的代碼前后加上 /* add by XXX on yyyy-mm-dd ,reaton start */ 和 /* add by XXX on yyyy-mm-dd end */, reason 要求跟刪除時相同。7.
16、 修改程序時,刪除(注釋)掉不要的程序,增加新的程序,規(guī)范與上面刪除和增加相同。4.3 常用SQL 語句的編寫規(guī)范 用語句分層縮進的寫法顯示嵌套結(jié)構(gòu)的層次;在注釋段與程序段,以及不同程序段之間應(yīng)插入空行;每行執(zhí)行一條語句;4.3.1 CREATE語句 CREATE TABLE t_linshi(YHBS VARCHAR2(20) NOT NULL, ZHGX DATE, DKKHD VARCHAR2(24) tablespace SYSTMP; 在尾括號結(jié)束后,加上這表所建立的表空間。在MIS系統(tǒng)中,中間用到的臨時表要建立在SYSTMP臨時表空間,并在該臨時表使用完之后drop 該表以即時釋放
17、空間。4.3.2 SELECT語句 查詢語句采用以下原則編寫(可最大化重用共享池中的SQL 語句,提高應(yīng)用程序性能): 將SELECT 語句分為5部分: (1) 由SELECT 開頭,后跟一個顯示查詢結(jié)果的列表; (2) 由FROM 開頭,后跟一個或多個獲取數(shù)據(jù)所涉及的表; (3) 由WHERE 開頭,后跟一個或多個確定所需值的條件; (4) 由GROUP BY開頭,后跟一個或多個表列名,通過這些列以對查詢結(jié)果進行匯總; (5) 由ORDER BY開頭,后跟一個或多個表列名,通過這些列以對查詢結(jié)果進行排序。 每個部分分行編寫,將每一行的第一個關(guān)鍵字與第一行的SELECT尾部對齊,如 SELEC
18、T col1, col2, col3 FROM table1 WHERE col1 > col2 GROUP BY col1, col2 ORDER BY col1; 關(guān)鍵字用大寫,列名和表名采用小寫 語句中嵌入逗號時,在逗號后面加一空格,當逗號是最后一個字符時,把它放在本行 ,不要另起到下行 當SELECT語句后有很多列(>=4)時,要按如下格式書寫 ,注意逗號要書寫在每個列后。SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9 將語句中WHERE 和AND 部分格式化,書寫布局類似于 WHERE AND AND
19、 當語句中出現(xiàn)括號時,括號的兩邊不留空格 在SQL 語句使用運算符時,操作兩邊應(yīng)各留一個空格,如 WHERE X = Y AND A = B AND C = D4.3.3 INSERT語句 如果要插入的列>=4,是要選擇如下格式:INSERT INTO t_linshi ( col1, col2, col3, col4, col5, col6)4.3.4 UPDATE語句 UPDATE <要更新的表名> SET <要更新的列> = <列值>4.3.5 DELETE語句 DELETE FROM table1 WHERE col1 = '?'4.4 條件執(zhí)行語句(IF)編寫規(guī)范 條件執(zhí)行語句IFELSE 按以下格式編寫 IF <條件表達式> THEN <一條或多條語句> ELSE (或ELSIF<條件表達式>) THEN <一條或多條語句> END IF;注: (1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)家樂旅游餐飲服務(wù)承包合同5篇
- 二零二五年度不銹鋼欄桿工程節(jié)能設(shè)計與施工合同2篇
- 2025年度車輛事故修復(fù)后保養(yǎng)與性能恢復(fù)合同4篇
- 2025年度企業(yè)員工打架事件預(yù)防與干預(yù)協(xié)議書3篇
- 二零二五年度寵物寄養(yǎng)服務(wù)合同寵物領(lǐng)養(yǎng)與救助合作3篇
- 2025住建部下發(fā)新的合同文本
- 2025年度個人與公司租賃合同租賃物轉(zhuǎn)租及轉(zhuǎn)借限制3篇
- 二零二五年度環(huán)保型托盤租賃與可持續(xù)發(fā)展協(xié)議2篇
- 2025年度電梯行業(yè)市場調(diào)研與咨詢服務(wù)合同7篇
- 二零二四年度壓力鍋銷售返利及獎勵合同3篇
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 《田口方法的導(dǎo)入》課件
- 春節(jié)后安全生產(chǎn)開工第一課
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 電力電纜工程施工組織設(shè)計
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫合同范本(2篇)
- 鋰離子電池健康評估及剩余使用壽命預(yù)測方法研究
- 體育文化園賽馬場項目概念規(guī)劃設(shè)計
評論
0/150
提交評論