武汉东浦信息技术有限公司
数据库编码规范
公司名称:Dawnpro Information & Technologies, Ltd 2011年6月17日
地址: 邮编: 电话: 传真: 手机: E-mail: 网址:
东浦数据库开发标准
目录
目录.....................................................................................................................................................................................................................2 文档控制............................................................................................................................................................................................................4 文档说明............................................................................................................................................................................................................5 1. 书写规范......................................................................................................................................................................................................6 1.1 大小写风格.............................................................................................................................................................................................7
1.1.1 所有数据库关键字和保留字使用大写,其他使用小写 ........................................................................................................... 7 1.1.2 允许所有数据库代码统一使用小写 ........................................................................................................................................... 7 1.2.1 程序块采用缩进风格书写 ........................................................................................................................................................... 8 1.2.2 使用空格,不允许使用TAB 键 .................................................................................................................................................... 8 1.2.3 同一条语句占用多行时,每行的第一个关键字应当左对齐 ................................................................................................... 8 1.2.4 同一部分内容,多行表达时缩进 ............................................................................................................................................... 8 1.2.5 复杂SQL的多层嵌套缩进方式 ..................................................................................................................................................... 8 1.3.1不允许把多个语句写在一行中,即一行只写一条语句 .......................................................................................................... 11 1.3.2 避免将SQL 语句写到同一行,再短的语句也要在关键字和谓词处换行 .............................................................................. 11 1.3.3相对独立的程序块之间加空行 .................................................................................................................................................. 11 1.3.4 超长语句的换行 ......................................................................................................................................................................... 12 1.3.5 begin、end 独立成行 ................................................................................................................................................................. 12 1.3.6 if 后的条件要用括号括起来,括号内每行最多两个条件 ...................................................................................................... 12 1.3.7不同类型的操作符混合使用时,使用括号进行隔离,以使代码清晰 .................................................................................. 12
1.2 缩进风格 .................................................................................................................................................................................................8
1.3 空格及换行.......................................................................................................................................................................................... 11
2.注释规范 .................................................................................................................................................................................................. 14 2.1 一般性注释.......................................................................................................................................................................................... 15
2.1.1 注释尽可能简洁,清晰 ............................................................................................................................................................. 15 2.1.2 创建每一数据库对象时都要加上COMMENT ON注释 ............................................................................................................. 15 2.1.3 注释语法包含两种情况:单行注释、多行注释 ..................................................................................................................... 15 2.2.1 一般情况下,源程序有效注释量须在30%以上 ...................................................................................................................... 16 2.2.2 统一文件头的注释 ..................................................................................................................................................................... 16 2.2.3 所有变量定义需要加注释,说明该变量的用途和含义 ......................................................................................................... 17 2.2.4 注释内容要清晰、明了、含义准确,防止注释二义性 ......................................................................................................... 17 2.2.5 在注释中不要使用缩写,特别是不常用的缩写 ..................................................................................................................... 17 2.2.6 对代码的修改,都需要注释 ..................................................................................................................................................... 17 2.2.7 对程序分支必须书写注释 ......................................................................................................................................................... 17 2.2.8在代码的功能、意图层次上进行注释,提供有用、额外的信息 .......................................................................................... 17 2.2.9 注释应与其描述的代码相邻 ..................................................................................................................................................... 18 2.2.10 注释与所描述的内容进行同样的缩排 ................................................................................................................................... 18 2.2.11注释上面的代码应空行隔开 .................................................................................................................................................... 18 2.2.12 在块的每个主要部分之前添加注释 ....................................................................................................................................... 18 2.2.13 在块和过程的开头注释中还可以增加要访问的数据库等信息 ........................................................................................... 18 2.2.14 避免在一行代码或表达式的中间插入注释 ........................................................................................................................... 18 2.2.15在程序块的结束行右方加注释,以表明程序块结束 ............................................................................................................ 18 2.2.16 注释用中文书写 ...................................................................................................................................................................... 18 2.2.17 复用代码需要说明 .................................................................................................................................................................. 18
2.2 函数/过程文本注释........................................................................................................................................................................... 16
3.程序编写规范 ......................................................................................................................................................................................... 19 3.1 日常语法规范 ..................................................................................................................................................................................... 20
3.1.1 避免隐式的数据类型转换 ......................................................................................................................................................... 20 3.1.2 使用is null 或is not null 或nvl 函数判断变量是否为空............................................................................................................ 20 3.1.3 避免使用非常复杂的SQL语句 ................................................................................................................................................... 20 3.1.4 尽可能地使用相关表字段的类型定义,形如%type、%rowtype.......................................................................................... 20 3.1.5 存储过程中变量的声明应集中在as 和begin 关键字之间 ....................................................................................................... 21 3.1.6 使用varchar2 代替varchar 类型 ................................................................................................................................................ 21 3.1.7 当存储过程有多个分支返回时,若有事务,需确保各个分支都结束了事务 ..................................................................... 21
此文档的所有部分都为公司的机密文档,其版权为公司所有,未经允许不得非法复制和外流
东浦数据库开发标准
3.1.8 采用成熟、稳定、可靠的技术来编码 .................................................................................................................................... 21 3.1.9 原则上不要使用动态sql,如果非得使用运态sql,须绑定变量 ........................................................................................... 21 3.1.10 尽量不要使用子函数方式实现存储过程,应分别定义 ...................................................................................................... 21 3.1.11 代码中不建议使用goto 语句 .................................................................................................................................................. 22 3.1.12 确保所有的变量和参数都被使用 .......................................................................................................................................... 22
3.2 常用SQL 语句的编写规范 ................................................................................................................................................................ 23
3.2.1 create语句 ................................................................................................................................................................................... 23 3.2.2 select语句.................................................................................................................................................................................... 23 3.2.3 insert语句 .................................................................................................................................................................................... 24 3.2.4 update语句.................................................................................................................................................................................. 25 3.2.5 delete语句 ................................................................................................................................................................................... 25 3.3.1 case when条件语句 .................................................................................................................................................................... 27 3.3.2 if语句编写 ................................................................................................................................................................................... 27 3.4.1 简单循环语句 ............................................................................................................................................................................. 28 3.4.2 FOR循环语句............................................................................................................................................................................... 28 3.4.3 WHILE循环语句........................................................................................................................................................................... 28
3.3 条件执行语句编写规范 ................................................................................................................................................................... 27
3.4 循环语句编写规范 ............................................................................................................................................................................ 28
3.5 函数文本(存储过程、函数和包等)......................................................................................................................................... 29 3.6 游标使用 .............................................................................................................................................................................................. 30 4.其它规范 .................................................................................................................................................................................................. 31 4.1 异常处理 .............................................................................................................................................................................................. 32
4.1.1 异常类型 ..................................................................................................................................................................................... 32 4.1.2 异常声明 ..................................................................................................................................................................................... 32 4.1.3 异常抛出 ..................................................................................................................................................................................... 32 4.1.4 异常捕获 ..................................................................................................................................................................................... 33 4.2.1 所有脚本按内容分开存放,并按以下顺序使用 ..................................................................................................................... 34 4.2.2 创建每类对象脚本的首部应该有注释 ..................................................................................................................................... 34 4.2.3 每个存储过程(函数)单独创建脚本,方便在项目配置库中的管理 ................................................................................. 34 4.3.1一般表设计 .................................................................................................................................................................................. 35 4.3.2 特殊表设计原则 ......................................................................................................................................................................... 35 4.3.3索引设计原则 .............................................................................................................................................................................. 35 4.3.4完整性设计原则 .......................................................................................................................................................................... 35 4.3.5触发器 .......................................................................................................................................................................................... 35 4.3.6视图设计 ...................................................................................................................................................................................... 36
4.2 脚本规范 .............................................................................................................................................................................................. 34
4.3 数据库设计.......................................................................................................................................................................................... 35
此文档的所有部分都为公司的机密文档,其版权为公司所有,未经允许不得非法复制和外流
东浦数据库开发标准
文档控制
文档更新记录
日期 更新人 版本 备注
文档审核记录
日期 审核人 Kon 职务 备注
文档去向记录
拷贝份数 接受人 职务 备注
此文档的所有部分都为公司的机密文档,其版权为公司所有,未经允许不得非法复制和外流
东浦数据库开发标准
文档说明
? 本文档规定了在使用数据库SQL语言进行信息处理时的编码规范。
? 通过数据库编码规范的执行,使数据库的开发规范化、标准化,便于阅读、理解和
继承,提高开发质量和效率。
? 本文档的阅读对象为公司从事软件项目的员工。
? 本文档以Oracle数据库为样本,有些具体方法和规定只对该数据库有效。 ? 本文档是数据库开发标准的一部分,后续将视情况推出其他规范内容
文档依据
本文档是公司项目组多年工作经验的总结,集聚了公司全体软件开发人员的经验、知识和智慧。
文档目的
采用一种一致的、可预见的方式建立PLSQL程序代码,能使代码更易于调试和维护;更易于发现问题的根源、分析代码的依赖性等。编码规范主要体现在注释、代码的结构、异常处理等。
此文档的所有部分都为公司的机密文档,其版权为公司所有,未经允许不得非法复制和外流