您好,欢迎访问三七文档
数据库设计规范V1.02007-8-28目录1)目的......................................................................32)范围......................................................................33)术语......................................................................34)设计概要..............................................................35)命名规范(逻辑对象)......................................46)数据库对象命名..................................................67)脚本注释..............................................................88)数据库操作原则..................................................99)常用字段命名(参考)............................................91)目的为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。2)范围本规范适用于开发组全体人员,作用于软件项目开发的数据库设计、维护阶段。3)术语数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。4)设计概要设计环境数据库:ORACLE9i、MSSQLSERVER2000等操作系统:LINUX7.1以上版本,显示图形操作界面;RedHat9以上版本WINDOWS2000SERVER以上设计使用工具使用PowerDesigner做为数据库的设计工具,要求为主要字段做详尽说明。对于SQLServer尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQLServer中)通过PowerDesigner定制word格式报表,并导出word文档,作为数据字典保存。(PowerDesignerv10才具有定制导出word格式报表的功能)。对于SQLServer一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。编写数据库建数据库、建数据库对象、初始化数据脚本文件设计原则采用多数据文件禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MBoracle数据库中必须将索引建立在索引表空间里。基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。设计的更新在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。运行阶段,由数据库管理员进行维护。如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。如果修改的是数据库字典表,必须由数据库管理员进行。编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改)修改数据库要通过SQL,禁止其它方式对数据进行修改修改数据库的SQL要添加说明后保存备查命名总体原则设定的前缀一律用小写字母标识名称命名全部小写整个命名的全长不得超过30个字母全部使用字母和下划线'_',不能使用中文和其他字符,有特别情况允许使用末尾数字编号。例如:t_Finace1,t_Finace2...命名名称来自于业务,全部采用英文单词英文单词过长可以采用通用的缩写,尽量表达出业务的含义如需要两个以上的英文单词做标识名称,单词之间要用下划线'_'连接名称全是由名词组成的,名词由大范围到小范围排序取名完成某功能的名称,如函数和过程,以动宾形式取名5)命名规范(逻辑对象)a)数据库结构命名数据库命名数据库的命名要求使用与数据库意义相关联的英文字母,即业务系统名称。例如:chinacare数据库的命名为ccnet;客户资料数据库的命名为Customer_Info。数据库日志设计命名数据库日志的的命名以数据库名_日志名.log格式命名。其中,日志名为有意义的数据库日志名称。例如:ccnet_logredo.logb)数据库配置设计命名数据库配置设计方案是以文件形式保存的,其内容是关于特定数据库的配置项目的具体值。数据库配置文件的命名以:数据库类型简写〉_应用系统标志_cfg.ini格式命名。其中,数据库类型简写见附件1《数据库类型简写》,cfq表示该文件是数据库配置文件。例如:ORA_ccnet_cfg.inic)数据库复制与存储设计命名数据库复制与存储设计方案是以文件形式保存的,其内容是关于特定数据库之间的复制策略的具体细节。数据库复制与存储设计文件的命名以:数据库类型简写_应用系统标志_rep.txt格式命名。其中,数据库类型简写见附件1《数据库类型简写》,rep表示该文件是数据库复制与存储文件。d)数据库连接设计命名数据库连接设计方案是以文件形式保存的,其内容是关于特定分布式数据库之间的连接设计的具体细节。数据库连接设计文件的命名以:数据库类型简写_应用系统标志_dbl.sql格式命名。其中,数据库类型简写见附件1《数据库类型简写》,dbl表示该文件是数据库连接设计文件。e)表空间、数据文件命名(主要针对Oracle)索引表空间:表空间命名格式:ts系统标识_i数据库文件命名格式:ts系统标识_i[n].dbf临时表空间:表空间命名格式:ts系统标识_t数据库文件命名格式:ts系统标识_t[n].dbf回滚表空间:表空间命名格式:ts系统标识_r数据库文件命名格式:ts系统标识_r[n].dbf数据表空间:表空间命名格式:ts系统标识_d数据库文件命名格式:ts系统标识_d[n].dbf注:表空间名不超过8位,n可取00-99或0-9,根据系统数据量确定。6)数据库对象命名a)表表的命名必须以t_(Table缩写)开头,格式为:t_[系统标识]_数据表类型标识_表标识。其中,[]表示可选项,依据实际情况而增加;表标识要求与表意义相关联的英文字母,例如:t_Customers。数据表大致分为:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表;基本编码表用base标志累计数据表用count标志系统信息表用info标志...例如:t_trade_base_trade_code,t_trade_info_help...b)字段/域根据业务要求进行命名,不需设定固定的前缀。c)索引针对数据库表中一个或多个字段建立的索引的命名格式应以idx_开头,索引列名间用_隔开,即为idx_ColumnName1_ColumnName2_…其中,ColumnName1是数据库表中(第一个)索引字段的名称或名称简写;ColumnName2是数据库表中(第二个)索引字段的名称或名称简写;索引名的总长必需符合数据库的规定。例:idx_cert_number(表示在字段cert_number上创建索引)为了避免重名索引出现,可选命名方式为idx_表名_递增号作为索引的命名,但是要求在数据字典中进行详细说明d)视图视图的命名必须以v_(View缩写)开头,格式为:v_视图类型_[系统标识]_视图标识。其中,视图类型参见表的分类说明;[系统标识_]是可选项,依据情况而增加;视图标识应与视图意义相关联的英文字母。例:v_user_detail_infoe)存储过程存储过程的命名必须符合sp_[系统标识]_存储过程标识格式。其中,sp表示是存储过程;[系统标识]为可选项,依据情况而增加;存储过程标识是与存储过程意义相关联的英文字母,例如:USP_Query_Write_to_Disk。例:sp_check_user_auth(以动宾方式取名)f)触发器触发器的的命名必须符合tr_表名_i,u,d的任意组合格式。其中,tr表示是触发器;i,u,d的任意组合是与触发器意义相关联的英文字母。例:tr_user_info_iu(表示对user_info表进行插入、更新的触发器)g)函数函数的命名必须符合fn_[系统标识]_函数标识格式。其中,fn表示是函数,[系统标识]为可选项,依情况而定;函数标识是与函数意义相关联的英文字母。例:fn_create_id(以动宾方式取名)h)自定义数据类型自定义数据类型的命名格式为:ud_自定义数据类型标识_数据类型i)Default(缺省)Default(缺省)的命名格式一般为:df_Default标识;对于非绑定的默认可取系统默认的名字j)Check、Constraint(约束)约束的命名格式一般为:ck_表名_Check标识;一些约束可直接放在生成表的语句中。例:ck_flag参见第8.1点实例,约束字段flag只能取字符'0'到'9':constraintck_flagCHECK(flagbetween'0'and'9')k)Rule(规则)规则的命名格式一般为:rl_Rule标识;对于非绑定规则(约束)可取系统默认的名字。l)主键主键的命名格式为pk_表名_主键标识。例:pk_user_info_userid(表user_info以字段userid创建主键)m)外键外键的命名格式为fk_表名_主表名_外键标识。可选命名方式为fk_表名_递增号作为索引的命名,但是要求在数据字典中进行详细说明例:fk_user_info_department_deptid(在表user_info的字段department_id上创建外键,参照主表department)n)同义词(ORACLE)同义词的命名格式为:sy_同义词标识例:sy_user_info(为所有权属于ben的表user_info的公共同义词)7)脚本注释7.1存储过程或触发器a)每一个存储过程或触发器都要在最前面写注释,注释如下/*writer:createdate:ver:Depiction:remark:*/另外,过程中声明的重要变量要有注释,例如:@iActionFlagint=0/*0=Checkout,1=GetLatest,2=UndoCheckOut*/b)如果只对存储过程或触发器进行部分修改时须添加以下注释:/*rewriter:add(rewriter):date:格式:YYYY-MM-DDstart1:修改描述:*//*原代码内容*/(修改时)/*rewriter:date:格式:YYYY-MM-DDend1:*//*rewriter:add(rewriter):date:格式:YYYY-MM-DDstart2:*/新代码内容/*rewriter:date:格式:YYYY-M
本文标题:23数据库设计规范
链接地址:https://www.777doc.com/doc-6127008 .html