内部是否保密□是■否文档类别:软件开发及编码规范阅读范围:公司研发事业部所有员工版本号:文档编号:广州吉海通讯科技有限公司软件开发及编码规范(数据库)编制单位:编制者:编制日期:审核者:批准者:软件开发及编码规范(数据库)第2页共8页修订历史记录版本制定和修订情况VI.0制定/修订背景制定/修订内容编审批情况编制:审核:批准:生效日期:软件开发及编码规范(数据库)第3页共8页目录1.概述..................................................................................................................................................42.编写目的..........................................................................................................................................43.开发规范..........................................................................................................................................43.1.源码版本库组织结构.............................................................................................................43.2.开发工具.................................................................................................................................53.3.开发方式.................................................................................................................................63.4.其他.........................................................................................................................................64.编码规范..........................................................................................................................................64.1.数据库设计原则.....................................................................................................................64.1.1.创建数据字典和ER图..................................................................................................64.1.2.禁止使用大小写混用的对象名和特殊字符.................................................................64.1.3.小心数据库保留词.........................................................................................................64.1.4.避免使用触发器.............................................................................................................64.1.5.别忘了索引.....................................................................................................................74.1.6.不要索引小型表.............................................................................................................74.1.7.用约束而非业务规则强制数据完整性.........................................................................74.1.8.数据类型的选择.............................................................................................................74.2.命名规范.................................................................................................................................74.2.1.表(TABLE)的命名规范..............................................................................................74.2.2.视图(VIEW)的命名规范............................................................................................84.2.3.字段(COLUMN)的命名规范.....................................................................................84.2.4.主键(PRIMARYKEY)的命名规范.............................................................................84.2.5.外键(FOREIGNKEY)的命名规范............................................................................84.2.6.索引(INDEX)的命名规范.........................................................................................84.2.7.触发器(TRIGGER)的命名规范.................................................................................84.2.8.存储过程(PROCEDURE)的命名规范......................................................................84.2.9.其他数据库对象命名规范.............................................................................................8软件开发及编码规范(数据库)第4页共8页1.概述为了提高软件开发质量,降低开发周期,增强代码的可重用性和易读性,使软件便于维护,开发人员间便于交流和协作,特总结出开发规范,以为参考。程序设计规范是程序员在程序设计过程中所要遵循的某些行为准则或模式。程序设计规范所讨论的问题是怎样才能写出简洁、清晰、易于理解的好程序,为此还要注意哪些问题,等等。原则:软件工程化模块化能简单不复杂强调团队协作强调创新和特色2.编写目的本文档用于约束和指导项目成员在设计、开发数据库时必须遵循的规范。本文档的读者:软件工程师系统分析师项目经理其他相关人员3.开发规范3.1.源码版本库组织结构每个项目必须有一个独立的项目版本库,源码管理工具推荐使用CVS或者SVN,项目文件结构必须按照以下方式组织:Project|_dist(存放输出的文件class文件,Web项目打成war包)|_lib(使用的库)软件开发及编码规范(数据库)第5页共8页|_src(源代码)|_docs(文档)|_webroot(jsp、html、WEB-INF等页面文件或文件夹)|_sql(建库、修改脚步及powerdesign建模文件,数据库修改记录)|_build.xml(ant的build文件)|_changes.log(代码版本和修改的日志)所有的数据库设计文档必须放在在版本库下的sql文件夹,sql文件夹应包含如下文件:Powerdesign的建模文件(PDM);首次建数据库的sql文件,以文件创建日期命名、sql为后缀名,如遇到同名文件,则后面加_1、_2、_3……区分。例如2007年6月21日星期四生成首次建库的脚本应命名为:20070621.sql,如遇到同名文件,则命名为20070621_1.sql,依次类推。sqlchanges.log文件,数据库修改记录。记录每次的修改时间、修改人、内容,同时还要生成修改数据库的脚本以文件创建日期命名、sql为后缀名,如遇到同名文件,则后面加_1、_2、_3……区分,例如20070622.sql,如遇到同名文件,则命名为20070622_1.sql,依次类推。sqlchanges.log格式例子:2007-6-21张山建立数据库2007-6-22莉莉增加T_USER表2007-6-22莉莉T_USER表增加password(varchar50)字段……同时,还必须修改PDM,并生成修改的sql,上述例子应该生成:2007-6-22.sql2007-6-22_1.sql3.2.开发工具数据库建模工具现统一使用SybasePowerDesigner9.5,PowerDesigner的版本必须统一,禁止有些人使用9.5版本,有些人使用12版本。软件开发及编码规范(数据库)第6页共8页3.3.开发方式开发人员必须在自己的开发机器上进行开发。从源码服务器Checkout文件,并在个人开发机修改,开发人员每天都应该从源码服务器Update最新的文件。因为PowerDesigner的建模文件为二进制文件,所以开发人员在修改它的时候,可以加锁(LOCK),修改完毕之后,再解锁(UNLOCK)、提交(COMMIT)。3.4.其他开发人员应按时完成项目经理分配的开发任务,每天应提交工作日报给项目经理,工作日报按照《工作日报.doc》格式;项目经理每周应提交项目周报、每月提交项目月报给部门经理,项目周报按照《项目周报.doc》格式,项目月报按照《项目月报.doc》格式。4.编码规范4.1.数据库设计原则4.1.1.创建数据字典和ER图一定要花点时间创建ER图表和数据字典。其中至少应该包含每个字段的数据类型和在每