oracle 数据库设计及开发规范_第1页
oracle 数据库设计及开发规范_第2页
oracle 数据库设计及开发规范_第3页
oracle 数据库设计及开发规范_第4页
oracle 数据库设计及开发规范_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库设计/开发规范作者: 创建日期: 20最近更新: 20控制编号: 版本: 1.0审批:AUTOTEXT"PICOracleLogo" 拷贝号 _____文档控制变更记录日期作者版本参考201.0审阅姓名职位分发拷贝号名称地点开发团队概述为了强化软件开发标准/规范执行力,提高软件产品的一次性通过率,特对现有的开发规范进行了重新输理,本文仅包括数据库层设计及开发规范。目的1,规范应用程序的结构和编码风格标准化,便于阅读和理解。为软件的维护提供有效的支持;2.监督软件开发规范/标准执行。适用范围公司范围内所有基于数据库的所有开发活动。软件开发流程数据库对象开发规范—命名规范命名规范:1.1对象命名汇总表对象名后缀范例描述表(table)无mtl_system_items表名长度原则上不超过25个字符视图(view)_vmtl_system_items_v如果表名或字段名过长,

则用表名或字段名的缩写序列(sequence)_smtl_system_items_s一般索引(normalindex)_n+序号mtl_system_items_n1位图索引(bitmapindex)_b+序号mtl_system_items_b1唯一索引(uniqueindex)_u+序号mtl_system_items_u1主键(primarykey)_pkmtl_system_items_pk外键(foreignkey)_fk+序号mtl_system_items_fk1簇(cluster)_ccust_orders_c触发器(triger)_trimtl_system_items_tri过程(procedure)_prcmtl_system_items_prc函数(function)_funmtl_system_items_fun包及包体(package&packagebody)_pkgmtl_system_items_pkg类及类体(type&typebody)_typmtl_system_items_typ物化视图(materializedview)_mvmtl_system_items_mv同义词(synonym)无mtl_system_titems与表同名数据库联接(databaselink)无from_erp保存点(savepoint)_sptwip_spt变量变量后缀示范说明自定义记录类型(record)_rectypeitem_recisrecord(

itemvarchar2(50),

inventory_item_idnumber);自定义记录类型变量前缀v_

后缀为_recv_item_rec自定义嵌套表类型(nesttable)_tbltypeitems_tblistable

ofitem_recindexby

binary_integer;自定义嵌套表变量前缀为v_

后缀为_tblv_items_tbl游标(cursor)前缀为cur_cursorcur_wipis其它变量前缀统一为v_无后缀,declare

v_countnumber;

v_duty_namevarchar2(20);

v_datedate;

v_rowidrowid;全局变量前缀统一为g_无后缀参数变量输入参数前缀统一为p_

输出参数前缀统一为x_cux_ar_import_cust_p(

p_line_idinnumber,

x_statueoutvarchar2)1.2对象命名约定:1.2.1据库对象如TABLE、VIEW、SEQUENCE、TRIGER、PROCEDURE、FUNCTION、PACKAGE1.2.21.2.3命名尽量采用富有意义的英文词汇,不准采用汉语拼音1.2.4对象名称长度1.2.5命名只能使用英文字母,数字和下划线(分隔的有意义)1.2.6避免使用Oracle的保留字如name,id,level,remark,description等关键字1.2.71.3变量命名约定:所有用户定义的存储过程或函数中使用的变量、常量、异常等统一采用v_+混合拼写(如v_count)的格式,其中小写首字母代表变量的类型,命名尽量采用富有意议的英文词汇,如果要缩写尽量采用约定俗成的缩写或去元音缩写,如info(信息)和ctrl(控制)等。1.3.11.3.2字符串类型采用varchar2,部分情况可用1.3.3如无特殊需求,避免使用大字段(blob,clob,long,text,image等1.3.4不允许使用中文或者特殊字符。1.3.5对于变量命名,禁止取单个字符(如i、外,还能表明变量类型等.1.3.6数据库开发编写规范—注释规范函数和过程代码要求按照下列格式书写注释:1.1一般情况下,源程序有效注释量须在20%以上。说明:注释的原则是有助于对程序阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言须准确、易懂、简洁。1.2统一文件头的注释.(中英文都可以)示例:使用以下书写规范:/***********************************************************name:sm_insert_user_fpurpose:向sm_users表中写入一条记录verdateauthordescription1.0.02006.10.01Tang1.创建此存储过程1.0.12006.12.01Tang1.增加hint1.2.02007.01.01Tang1.增加传入参数2.增加用户名校验过程parameters:p_user_nameinvarchar2新增用户名p_passwordinvarchar2新增用户的加密密码p_diabled_dateindate新增用户的过期时间p_created_byinnumber新增用户的操作人p_password_cyleinnumber密码更改周期x_messageoutvarchar2执行异常时返回的错误信息return:0成功-1失败notes:1.本函在前台调用,系统后台会自动地为last_updated_by、last_update_date、creation_date赋值.***********************************************************/说明:purpse:函数或过程的用途date:创建或修改日期author:创建人或修改人description:在修改时,一定要在这里写出改动的内容,有1、2、3清晰列出来parameters:对传入和传出参数进行说明return:函数返回结果notes:使用该函数或过程时需要特别注意的事情,如果没有可以不写。1.3注释内容要清晰、明了、含义准确,防止注释二义性.1.4禁止在注释中使用缩写,特别是非常用的缩写。说明:在使用缩写时或之前,应进行必要的说明1.5对存储过程的任何修改,都需要在注释最后添加修改人、修改日期及修改原因等信息。1.6注释应与其描述的代码相似,对代码注释应放在其上方或右方(对单条语句的注释)相应位置,不可放在下面。4.7避免在一行代码或表达式的中间插入注释。程序开发编写规范—语法规范1创建数据库表时必须包括如下字段:Name TypeNullable

-------------------------------------------

LAST_UPDATE_DATEDATE NOTNULL

LAST_UPDATED_BYNUMBER NOTNULL

CREATION_DATEDATENOTNULL

CREATED_BYNUMBERNOTNULLAttribute1varchar2(150)Attribute2varchar2(150)Attribute3varchar2(150)Attribute4varchar2(150)Attribute5varchar2(150)Attribute6varchar2(150)Attribute7varchar2(150)Attribute8varchar2(150)Attribute9varchar2(150)Attribute10varchar2(150)2避免将SQL语句写到同一行,再短的语句也要在关键字和谓词处换行。示例:以下书写不符合规范:selectfu.user_id,fu.user_namefromfnd_userfuwherefu.user_id=:aa应写成:selectfu.user_id,fu.user_namefromfnd_userfuwherefu.user_id=:aa3begin、end独立成行示例:以下不符合规范beginnull;exceptionwhenothersthennull;end;应写成:beginnull;exceptionwhenothersthennull;end;4避免使用select*语句。说明:不要用*来代替所有字段,应给出字段列表,注:不包含selectcoun(*).示例:以下不符合规范:select*fromsm_duty应如下书写:selectduty_id,duty_name,creation_date,created_byfromsm_duty5insert语句必须给出字段列表。说明:使用insert语句一定要给出要插入的字段列表,这样即使更改了表结构加了字段也不会使用引用了本表的存储过程失效。示例:以下不符合本规范insertintoinv_parametersvalues(:field1,:field2,:field3);应如下:insertintoinv_parameters(field1,field2,field3)Values(:field1,:field2,:field3)6当一个PL/SQL或SQL语句中涉及到多个表时,始终使用别名来限定字段名,这使其它人阅读起来更方便,避免了含议模糊的引用,其中能够别名中清晰地判断出表名。说明:别名命名时,尽量避逸使用无意义的代号a、b、c…,而应该有意义(如表mtl_system_items_b对应别名为msi,po_headers_all别名对应为pha)。7PL/SQL异常处理规范完善,对于存储过程、函数等程序块都要有异常处理部分,以提高程序的自检能力。如:begin

...

exception

whenno_data_foundthen

dbms_output.put_line('no_data_found');

raise;whenothersthen……

end8避免隐式的数据类型转换。说明:在书写代码时,必须确定表的结构和表中各个字段的数据类型,特别是书写查询条件时的字段就更要注意了。示例:以下代码不符合规范,status_type是number型数据.selectwdj.wip_entity_idfromwip.wip_discrete_jobswdjwherewdj.status=‘3’;应如下书写:selectwdj.wip_entity_idfromwip.wip_discrete_jobswdjwherewdj.status=3;9不要将空的变量值直接与比较运算符(符号)比较。如果变量可能为空,应使用isnull或isnotnull或nvl函数进行比较。示例:以下代码不符合规范ifv_user_name=nullthendbms_output.put_line(‘usernameisnull’);endif;应该如下书写:ifv_user_nameisnullthendbms_output.put_line(‘usernameisnull

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论