Oracle数据库编码规范
1目的
使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2适用范围
本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。
3规范
3.1书写规范
丑陋的书写规范不仅可读性较差,而且给人以敬而远之的感觉;而良好的书写规范则给人以享受和艺术的体验。
3.1.1大小写风格
规则3.1.1.1
所有数据库关键字和保留字命名使用大小写不做要求。
3.1.2缩进风格
规则3.1.2.1
程序块严格采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2/4个。
必须使用空格,不允许使用【Tab】键。以免在用不同的编辑器阅读程序时,因【Tab】键所设置的空格数目不同而造成程序布局不整齐。
规则3.1.2.2
当同一条语句需要占用多于一行时,每行的其他关键字与第一行的关键字进行右对齐。
IF flag = True THEN
Select username
Into vUserInfo
From userInfo
Where userId = ‘id’
END IF;
3.1.3空格及换行
规则3.1.3.1
不允许把多个语句写在一行中,即一行只写一条语句且一行最长不能超过80字符 ;
规则3.1.3.2
避免将复杂的SQL语句写到同一行,建议要在关键字和谓词间换行。
WHERE子句书写时,每个条件占一行。
规则3.1.3.3
相对独立的程序块之间必须加空行。
BEGIN、END独立成行。
3.1.4其它
规则3.1.4.1
确保变量和参数在类型和长度上与表数据列相匹配。如果与表数据列宽度不匹配,则当较宽或较大的数据传进来时会产生运行异常。
3.2命名规范
对于命名规范来说,想要做到完全统一的确是不可能的任务。命名规范更多的是个人层面的爱好,既使无法完全做到一致,但是我们仍然要尽量去遵守。
3.2.1字段命名规范
在此仅提供几种常见的命名方法,如表3-2-1所示。
表3-2-1 命名规范表
UserName | 适合英语比较好,并且喜欢抑扬顿挫的人 |
username | 适合英语比较好,且比较严谨的人 |
userName | 适合做XX开发的人 |
规则3.2.1.1
不建议使用数据库关键字和保留字,原因是为了避免不必要的冲突和麻烦。
规则3.2.1.2
严禁使用带空格的名称来给字段命名。
3.2.2变量命名
规则3.2.2.1
所有PL/SQL中的变量与对象命名规则相似,如表3-2-2-1 所示
表3-2-2-1 变量命名规范表
变量类型 | 前缀 | 范例 |
输入变量 | 遵询事实,不做要求 | |
输出变量 | 遵询事实,不做要求 | |
输出输入变量 | 遵询事实,不做要求 | |
参数 | cv_ | cv_userName |
普通变量 | lv_ | lv_userName |
全局变量 | gv_ | gv_userName |
常量 | 大写 | PI |
游标 | cur_ | cur_userInfo |
用户自定义类型 | type_ | type_userInfo |
保存点(save point) | spt_oracle游标的使用 | spt_userInfo |
变量代表列 | %type | Sorganization.id%type |
规则3.2.2.2
命名不允许使用中文或者特殊字符。
命名中若使用特殊约定或缩写,则要注释说明。
命名中多个词组合较长时,使用单词的缩写。
规则3.2.2.3
使用有意义、易于记忆、描述性强、简短及唯一的英文单词/拼音缩写。
说明:个人命名风格,在符合所在项目组的命名规则的前提下,才可以使用。
规则3.2.2.4
对于变量命名,禁止取单个字符(如i、j),建议除了要有具体含义外,还要能表明变量类型等。
3.2.3其他对象命名
用户自定义的数据库对象名包括表、视图、主外键、索引、触发器、函数、存储过程、序列、同义词、包和包体等。
规则3.2.3.1
其他对象的命名也与字段的命名规则类似,风格保持一致即可。
规则3.2.3.2
除数据库名称长度为1~8个字符外,其余为1~30个字符。
命名只能使用英文字母、数字和下划线。
规则3.2.3.3
除表外,其他各种对象的命名最好用不同的前缀加以区别,如表3-2-3-3。
表 3-2-3-3 其他对象命名规范表
对象名 | 前缀 | 范例 | |
表(table) | 业务表 | B_ | B_ORDER |
系统表 | S_ | S_SUSER | |
附加表 | BR_ | BR_PRINTSPECPRICE | |
视图(view) | v_ | v_border | |
序列(sequence) | seq_ | seq_sdept | |
触发器(trigger) | tri_ | tri_border | |
存储过程(procedure) | sp_/p_ | sp_userInfo/p_userInfo | |
函数(function) | fn_/f_ | fn_userInfo/f_userInfo | |
物化视图(materialized view) | mv_ | mv_border | |
包和包体(package & package body) | Osb(oracle service bus) | ||
类和类体(type & type body) | typ_ | typ_userInfo | |
主键(primary key) | pk_ | pk_border_fieldname | |
外键(foreign key) | fk_ | fk_border_fieldname | |
唯一索引(unique index) | uk_ | uk_border_fieldname | |
普通索引(normal index) | ind_ | ind_border_fieldname | |
位图索引(bitmap index) | bk_ | bk_border_fieldname | |
同义词(synonym) | 依据所分配的表所属模块/模式 | ||
数据库链接(database link) | 无特殊要求 | ||
3.3注释规范
规则3.3.1
一般情况下,源程序有效注释量必须在30%左右。
说明:注释的原则是有助于对程序阅读理解,在该加的地方加,注释不宜太多也不能太少,注释语言需准确、易懂、简洁、精练。
规则3.3.2
统一文件头的注释。
主要是对相关过程、函数进行功能性描述、修订记录,以及入参出参说明等。
对存储过程、函数的任何修改,都需要在注释后添加修改人、修改日期及修改原因等修订说明。
示例:
名称:GetVipCode_max
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论