標籤:
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
Oracle命名規範