




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MIS系统Oracle编码规范变更记录日期作者版本变更说明登记人2012-06-17zhangyabin1.0创建zhangyabin1、编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。 2、适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。 3、对象命名规范 3.1 数据库和SID 数据库名定义为系统名+模块名 全局数据库名和例程SID 名要求一致 因SID 名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符 3.2 表相关 3.2.1 表空间 面向用户的专用数据表空间以用户名+_+dat
2、a命名 ,但在MIS系统中,sysnet用户下按层来给表空间命名,如ODS表空间,BASE,MID等。 面向用户的专用索引表空间以用户名+_+idx命名,MIS系统目前只有一个用户,所以使用系统名+idx命名,如MIS_IDX表空间。 面向用户的专用临时表空间以用户名+_+tmp命名 面向用户的专用回滚段表空间以用户名+_+rbs 命名 面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名 LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs 3.2.2
3、 表空间文件 表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等 3.2.3 表 表命名要遵循以下原则: 一般表采用“系统名+t_+模块名+_+表义名” 格式构成 ,但在MIS系统中因为只有sysnet一个用户,MIS一个系统,所以,表命名以模块名+_+表义名构成,具体命名规则如下:维表命名:D_+维度名,维度名一般为维度英文名字或缩写。如d_org ,d_product等ODS层:表名与核心库保持一致;BASE层:根据模块不同,承保模块则以f_policy开头,理赔以f_claim开头,后面带有evt +_+表义。如 f_policy_evt , f_po
4、licy_evt_fee;MID层:根据模块不同,承保模块则以f_policy开头,理赔以f_claim开(除报案外,报案为f_regist开头),后面加表义名。如:f_policy_chg_add_snap ,f_regist_mid。主题层:根据模块不同,承保模块则以f_policy开头,理赔以f_claim开头,如果是车险报表则为f_policy_car开头或 f_claim_car,管理报表以f_Opertion或f_ope开头,后面+表义名。如果报表是日历年则在表义名中加cale,对应的承保年则一般是去掉cale。如:f_policy_car_inti_cale_year, f_po
5、licy_car_inti_cale_year , f_opertion_car_cale。 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成 模块名或表义名均以其英文单词或英文单词缩写来命名,表义名中英文单词均采用小写,且字符间不加分割符 表别名命名规则:取表义名的前4 个字符加最后一个字符。如果存在冲突,适当增加字符 临时表采用“系统名+t_tmp_+表义名” 格式构成,在MIS系统库中一位只有一个MIS系统,在已有的存储过程中,遵循以前的规则,采用t_+模块名_+表义名,如:T_Claim_Inte_REGIST_Cancel。对于仅供个人测试的临时表,命名规则改为
6、t_tmp_表义名_+建表人名缩写,并要确保在使用完该临时表之后,及时删除。例如,t_tmp_policy_evt_zn。 关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。3.2.4 属性(列或字段) 属性命名遵循以下原则: 采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符 属性名前不要加表名等作为前缀 属性后不加任何类型标识作为后缀 不要使用“ID”作为列名 关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行 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 触发器 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+表
9、B”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN 3.3 视图 视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似 3.4 序列 序列命名以seq_+含义名组成 3.5 同义词 同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀 3.6 存储对象相关 3.6.1 存储过程 存储过程命名由“ETL_+ODS/D/F+_+存储过程标识(缩写)”。其中ETL_ODS开头的,代表ODS层数据加工过程,以ETL_D开头的,代表维表的加工过程,以ETL_F开头的为基础层到主题层的数据加工过程。存储过程标识主要以模块名+实际含义的英文单词
10、或英文单词缩写构成,并用下划线分割各个组成部分。模块名跟前面表的命名规范保持一致,例如,ETL_F_Policy_Evt_Start_Add:承保事务事实开始,ETL_F_Policy_Car_Inti_Cal_Add:承保综合分析车险日历年制-险种,ETL_D_PRODUCT_ADD:产品维表增量 3.6.2 函数 函数命名由“系统名+f+_+函数标识”组成 3.6.3 包 包命名由“系统名+pkg+_+包标识”组成 3.6.4 函数文本中的变量采用下列格式命名: 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数 过程变量命名采用“l+_+名称”形式 全局
11、包变量命名采用“g+_+名称”形式 游标变量命名采用“名称+_+cur”形式 常量型变量命名采用“c+_+名称”形式 变量名采用小写,若属于词组形式,用下划线分隔每个单词 变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE 方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化 3.7 用户及角色 用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成 角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成 3.8 数据库链接 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成 若远程服务器名和数据库名
12、一致,上式“_+数据库名”部分省去 3.9 命名中的其它注意事项 命名都不得超过30个字符。 不要在对象名的字符之间留空格 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突4、 编码规范 4.1 一般性注释 1. 注释尽可能简洁、详细而全面 2. 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;3. 建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS '
13、0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出' 4. 注释语法包含两种情况:单行注释、多行注释 单行注释:注释前有两个连字符(-),一般对变量、条件子句可以采用该类注释。 多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。 4.2 函数文本注释 1. 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释,任何时间对过程进行任何修改 ,都需要在过程变更信息处,填写变更信息。 /* *-过程名 :*-功能描述 :* -输入参数说明:*-输出参数说明:*-创建人: *-创建时间 *-过程更改信息 时间 变更人 变更原因 变更内容
14、*/ CREATE OR REPLACE PROCEDURE dfsp_xxx 2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。 3. 在每一个变量声明的旁边添加注释。说明该变量要用作什么 通常,简单使用单行注释就行了,例如l_sfzh CHAR(11) -身份证号码 4. 在块的每个主要部分之前添加注释 在块的每个主要部分之前增加注释,解释下组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述 5. 删除现有程序时,在删除代码前后加上 /* 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 号,便于后续人员进行追踪。6 增加代码时,在增加的代码前后加上 /* add by XXX on yyyy-mm-dd ,reaton start */ 和 /* add by XXX on yyyy-mm-dd end */, reason 要求跟删除时相同。7.
16、 修改程序时,删除(注释)掉不要的程序,增加新的程序,规范与上面删除和增加相同。4.3 常用SQL 语句的编写规范 用语句分层缩进的写法显示嵌套结构的层次;在注释段与程序段,以及不同程序段之间应插入空行;每行执行一条语句;4.3.1 CREATE语句 CREATE TABLE t_linshi(YHBS VARCHAR2(20) NOT NULL, ZHGX DATE, DKKHD VARCHAR2(24) tablespace SYSTMP; 在尾括号结束后,加上这表所建立的表空间。在MIS系统中,中间用到的临时表要建立在SYSTMP临时表空间,并在该临时表使用完之后drop 该表以即时释放
17、空间。4.3.2 SELECT语句 查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能): 将SELECT 语句分为5部分: (1) 由SELECT 开头,后跟一个显示查询结果的列表; (2) 由FROM 开头,后跟一个或多个获取数据所涉及的表; (3) 由WHERE 开头,后跟一个或多个确定所需值的条件; (4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总; (5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 SELEC
18、T col1, col2, col3 FROM table1 WHERE col1 > col2 GROUP BY col1, col2 ORDER BY col1; 关键字用大写,列名和表名采用小写 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行 ,不要另起到下行 当SELECT语句后有很多列(>=4)时,要按如下格式书写 ,注意逗号要书写在每个列后。SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9 将语句中WHERE 和AND 部分格式化,书写布局类似于 WHERE AND AND
19、 当语句中出现括号时,括号的两边不留空格 在SQL 语句使用运算符时,操作两边应各留一个空格,如 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 条件执行语句(IF)编写规范 条件执行语句IFELSE 按以下格式编写 IF <条件表达式> THEN <一条或多条语句> ELSE (或ELSIF<条件表达式>) THEN <一条或多条语句> END IF;注: (1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年蒸气吹扫机行业深度研究分析报告
- 2025年版事业单位试用期员工劳动合同签订要点3篇
- 物料箱车行业深度研究报告
- 2025年度调味品品牌形象设计与宣传推广合同
- 房屋 补充合同范本
- 鄄城租房合同范本
- 2025年度防盗门行业人才培养与引进合同
- 逆变式孤焊机行业深度研究报告
- 施工企业如何开展铁路项目概算清理工作
- 2025山地租赁协议范本(山地风力发电项目)4篇
- 2024年江苏省卫生健康委员会所属事业单位招聘笔试真题
- 廉洁知识培训课件
- 小学二年级有余数的除法口算题(共300题)
- 高职院校高水平现代物流管理专业群建设方案(现代物流管理专业群)
- 2024专升本英语答题卡浙江省
- (完整版)50028-城镇燃气设计规范
- 土石坝设计毕业设计
- 一季责任制整体护理持续改进实例
- 清华抬头信纸
- 原发性肺癌手术临床路径(最全版)
- 最新工程招投标实训课程标准教案
评论
0/150
提交评论