1、編寫目的 使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀、理解和繼承。 2、適用範圍 本規範適用於公司範圍內所有以ORACLE作為後臺資料庫的應用系統和項目開發工作。 3、對象命名規範 3.1 資料庫和SID 資料庫名定義為系統名+模塊名 ★ 全局資料庫名和常式SID 名要求 ...
1、編寫目的
使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀、理解和繼承。
2、適用範圍
本規範適用於公司範圍內所有以ORACLE作為後臺資料庫的應用系統和項目開發工作。
3、對象命名規範
3.1 資料庫和SID
資料庫名定義為系統名+模塊名
★ 全局資料庫名和常式SID 名要求一致
★ 因SID 名只能包含字元和數字,所以全局資料庫名和SID 名中不能含有“_”等字元
3.2 表相關
3.2.1 表空間
★ 面向用戶的專用數據表空間以用戶名+_+data命名 ,如Aud 用戶專用數據表空間可命名為Aud_data
★ 面向用戶的專用索引表空間以用戶名+_+idx命名
★ 面向用戶的專用臨時表空間以用戶名+_+tmp命名
★ 面向用戶的專用回滾段表空間以用戶名+_+rbs 命名
★ 面嚮應用的表空間以應用名+_data/應用名+_idx/應用名+_tmp/應用名+_rbs 命名
★ LOB 段數據專用表空間以其數據表空間+_+lobs 命名,如上例中數據表空間為Aud_data,則LOB 段表空間可命名為Aud_data_lobs
3.2.2 表空間文件
表空間文件命名以表空間名+兩位數序號(序號從01開始)組成,如Aud_data01 等
3.2.3 表
表命名要遵循以下原則:
★ 一般表採用“系統名+t_+模塊名+_+表義名” 格式構成
★ 若資料庫中只含有單個模塊,命名可採用“系統名+t_+表義名”格式構成
★ 模塊名或表義名均以其漢語拼音的首字元命名,表義名中漢語拼音均採用小寫,且字元間不加分割符;
★ 表別名命名規則:取表義名的前3 個字元加最後一個字元。如果存在衝突,適當增加字元(如取表義名的前4 個字元加最後一個字元等)
★ 臨時表採用“系統名+t_tmp_+表義名” 格式構成
★ 表的命名如
dft_gy_cbap:系統名(電費 df)+t_+模塊名(高壓 gy)+_+表義名(抄表安排 cbap)
dft_cbbj: 系統名(電費 df)+t_+表義名(抄表標記 cbbj)
dft_tmp_hj: 系統名(電費 df)+tmp+表義名(合計hj)(此處為臨時表)
★ 關聯表命名為Re_表A_表B,Re 是Relative的縮寫,表A 和表B均採用其表義名或縮寫形式。
3.2.4 屬性(列或欄位)
屬性命名遵循以下原則:
★ 採用有意義的列名,為實際含義的漢語拼音的首字元,且字元間不加任何分割符
★ 屬性名前不要加表名等作為首碼
★ 屬性後不加任何類型標識作為尾碼
★ 不要使用“ID”作為列名
★ 關聯欄位命名以 “cd+_+關聯表的表義名(或縮寫)+_+欄位名”進行
3.2.5 主鍵
★ 任何表都必須定義主鍵
★ 表主鍵命名為:“pk+_+表名(或縮寫)+_+主鍵標識”如“pk_YHXX_IDKH”等
3.2.6 外鍵
表外鍵命名為: “fk+_+表名(或縮寫)+_主表名(或縮寫)+_+主鍵標識”如“fk_YHLX_YHXX_SFZH”等
3.2.7 CHECK約束
CHECK 約束命名為: “chk+_+CHECK約束的列名(或縮寫)”
3.2.8 UNIQUE約束
UNIQUE 約束命名為: “unq+_+UNIQUE約束的列名(或縮寫)”
3.2.9 索引
索引的命名為:“表名(或縮寫)+_+列名+_idx”。其中多單片語成的屬性列列名取前幾個單詞首字元再加末單詞首字元組成如yd_kh 表khid 上的index: yd_kh_khid_idx
3.2.10 觸發器
★ AFTER型觸發器
系統名+tr_+<表名>_+ +[_row]
★ BEFORE型觸發器
系統名+tr_+<表名>_+bef_+[_row]
★ INSTEAD OF型觸發器
系統名+ti_+<表名>+_++[_row]
★ 各種類型的觸發器中
i,u,d 分別表示insert、update 和delete行級觸發器,後加_row 標識,語句級觸發器不加,如 yddftr_CSH_i_row
3.2.11 簇
簇以簇中要存儲的各個表(或表別名)及表間加and的組成 命名,即表“A+And+表B…”,如存儲GR(工人)和GRJN(工人技能)表的簇命名為GRAndGRJN
3.3 視圖
視圖命名以系統名v_+模塊名作為首碼,其他命名規則和表的命名類似
3.4 序列
序列命名以seq_+含義名組成
3.5 同義詞
同義詞命名與其基礎對象的名稱一致,但要去除其用戶首碼或含有遠程資料庫鏈接的尾碼
3.6 存儲對象相關
3.6.1 存儲過程
存儲過程命名由“系統名+sp+_+存儲過程標識(縮寫)”組成存儲過程標識要以實際含義的漢語拼音的首字元構成,並用下劃線分割各個組成部分。如增加代理商的帳戶的存儲過程為“sfsp_ZJDLSZH”。
3.6.2 函數
函數命名由“系統名+f+_+函數標識”組成
3.6.3 包
包命名由“系統名+pkg+_+包標識”組成
3.6.4 函數文本中的變數採用下列格式命名:
★ 參數變數命名採用“i (o或io)+_+名稱”形式,首碼i 或o 表輸入還是輸出參數
★ 過程變數命名採用“l+_+名稱”形式
★ 全局包變數命名採用“g+_+名稱”形式
★ 游標變數命名採用“名稱+_+cur”形式
★ 常量型變數命名採用“c+_+名稱”形式
★ 變數名採用小寫,若屬於片語形式,用下劃線分隔每個單詞
★ 變數用來存放表中的列或行數據值時,使用%TYPE、%ROWTYPE 方式聲明變數,使變數聲明的類型與表中的保持同步,隨表的變化而變化
3.7 用戶及角色
★ 用戶命名由“系統名稱+_+user+_+名詞(或縮寫)或名詞短語(或縮寫)”組成
★ 角色命名由“系統名稱+_+role+_+名詞(或縮寫)或名詞短語(或縮寫)”組成
3.8 資料庫鏈接
★ 資料庫鏈接命名由“遠程伺服器名+_+資料庫名+_+link”組成
★ 若遠程伺服器名和資料庫名一致,上式“_+資料庫名”部分省去
3.9 命名中的其它註意事項
★ 命名都不得超過30個字元。
★ 不要在對象名的字元之間留空格
★ 小心保留詞,要保證你的命名沒有和保留詞、資料庫系統或者常用訪問方法衝突
4、 編碼規範
4.1 一般性註釋
4.1.1 註釋儘可能簡潔、詳細而全面
4.1.2 創建每一資料庫對象時都要加上COMMENT ON註釋,以說明該對象的功能和用途;建表時,對某些數據列也要加上COMMENT ON註釋,以說明該列和/或列取值的含義。如:XX 表中有CZZT列屬性為NUMBER(10, 0)可加COMMENT ON 註釋如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超時, 3 = 登出'
4.1.3 註釋語法包含兩種情況:單行註釋、多行註釋
單行註釋:註釋前有兩個連字元(--),一般對變數、條件子句可以採用該類註釋。
多行註釋:符號/*和*/之間的內容為註釋內容。對某項完整的操作建議使用該類註釋。
4.2 函數文本註釋
4.2.1 在每一個塊和過程(存儲過程、函數、包、觸發器、視圖等)的開頭放置註釋
/************************************************************************
*name : --函數名
*function : --函數功能
*input : --輸入參數
*output : --輸出參數
*author : --作者
*CreateDate : --創建時間
*UpdateDate : --函數更改信息(包括作者、時間、更改內容等)
|
*************************************************************************/
CREATE [OR REPLACE] PROCEDURE dfsp_xxx
…
4.2.2 傳入參數的含義應該有所說明。如果取值範圍確定,也應該一併說明。取值有特定含義的變數(如boolean類型變數),應給出每個值的含義。
4.2.3 在每一個變數聲明的旁邊添加註釋。說明該變數要用作什麼
通常,簡單使用單行註釋就行了,例如l_sfzh CHAR(11) --身份證號碼
4.2.4 在塊的每個主要部分之前添加註釋
在塊的每個主要部分之前增加註釋,解釋下—組語句目的,最好是說明該段語句及演算法的目的以及要得到的結果,但不要對其細節進行過多的描述
4.2.5 在塊和過程的開頭註釋中還可以增加要訪問的資料庫等信息
4.3 常用SQL 語句的編寫規範
4.3.1 CREATE語句
CREATE TABLE dft_dksz(
YHBS VARCHAR2(20) NOT NULL,
ZHGX DATE,
DKKHD VARCHAR2(24),
CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS)
)
|
推薦:http://www.cnblogs.com/roucheng/p/3506033.html