数据库设计规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库设计规范
目的
为规范数据库管理,统一数据库设计,特制定本规范。
本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证。
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库物理模型设计意为用PowerDesigner 或者其他工具生成数据表结构模型以及其它各种数据库对象。生成各种数据库对象必须按照该规范的规定进行创建,以便统一开发和维护。
工具:PowerDesigner 15.1
设计概要:
一个系统对应一个Model,每个Model下分成多个Physical Diagram,每个Physical Diagram代表每个子系统的设计模型。
命名规范
Model以中文名字命名,如:危废综合监管云平台V0.1
其中V 是version 的首写大写字母,0.1标明该模型是0.1版本,若以后做修改,将由DBA进行升级,该版本号将随着项目的进展而变化升级,如:危废综合监管云平台V2.5。
数据表相关设计要求
通用规范
使用英文:要用简单明了的英文单词,不要用拼音,特别是拼音缩写。主要目的很明确,让人容易明白这个对象是做什么用的;
一律大写,特别是表名:有些数据库,表的命名乃至其他数据对象的命名是大小写敏感的,为了避免不必要的麻烦,并且尊重通常的习惯,最好一律用大写;
数据库对象命名规范
表的命名
表名的前缀:前缀_表名。为表的名称增加一个或者多个前缀,前缀名不要太长,可以用缩写,最好用下划线与后面的单词分开;其目的有这样几个:为了不与其他项目或者其他系统、子系统的表重名;
表示某种从属关系,比如表明是属于某个子系统、某个模块或者某个项目等等。表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员。比如以子系统为前缀的,当看到这个表的时候,就知道有问题可以去找该子系统的开发和使用人员;
表名称必须用英文大写字母,且具有代表含义的单词(字母)构成;
表名称命名必须遵循以下规则:
T_XXX_YYY T_+每个单词(每个字母大写) ,表名只有以下下两种情况T_ 代表生产系统。
第一种情况;如:(单据审批)T_BILL_EXMINE中。因为表名可能有1-2个单词构成,所以XXX表示T_后的第一个的单词,YYY T_后的第二个的单词。
第二种情况;如:(申请计划)T_PLAN中, 同上。
表的备注内容,必须写清楚。
字段名称命名必须遵循:
a) Name 字段汉语名称;
b) Code 字段英文名称,必须取该字段的英文单词,若有多个单词必须有下滑线相隔。
c) 根据自己的情况命名字段名,但是必须是有意义且科学的单词,必须控制在1-2个之内,每个单词的每个字母必须大写。如:(审批顺序)EXMINE_ORDER
d) Table Property 属性中必须有字段的注释(Comment)属性详细描述
下面是一些公用的字段命名
a) 姓名NAMES
b) 编号NUMBERS
c) 时间TIMES
d) 日期DATES
e) 如果一张表中有一个以上的;如: XXX_TIMES
外键名称命名规则,有一下两种情况
第二种情况,是直接关联的(在同一个系统中);
如:ID_P_PLAN
其中ID表示该字段为外键;P_PLAN为关联表的表
名;并用下划线将它们分隔标注, 类型为V ARCHAR2(32)
第二种情况,是间接关联的(不在同一个系统中);
如:ID_XXX
其中的ID表示该字段为外键;XXX为关联的另外一个系统中的表名,(本系统中联系了人力资源这个系统), 类型为V ARCHAR2(32)
每张表必须有一个名为ID的键作为主键,类型为V ARCHAR2(32),这里的ID统一为自增;
一定要标注每个字段是否为空;
下面是一些难确定的字段的类型和范围要求
数量,个数等为NUMBER
价格,金额等为NUMBER(10,6)
备注,意见,内容等为V ARCHAR2(500)
附件等为BLOB
存储过程相关设计要求
存储过程必须有以下注释说明:
/******************************************
DESCRIPTION:(描述此存储过程的功能或创建存储过程的原因)PARAMETER:(存储过程的输入输出参数说明)
CREATE_DATE:(存储过程的创建日期/修改日期)
CREATE_AUTHOR:(创建/修改存储过程的作者)
******************************************/
函数相关设计要求
/******************************************
DESCRIPTION:(描述此函数的功能或创建函数的原因)
PARAMETER:(函数的输入输出参数说明)
CREATE_DATE:(函数的创建日期/修改日期)
CREATE_AUTHOR:(创建/修改函数的作者)
******************************************/
触发器相关设计要求
/******************************************
DESCRIPTION:(描述此触发器的功能或创建触发器的原因)
PARAMETER:(触发器的输入参数说明)
CREATE_DATE:(触发器的创建日期/修改日期)
CREATE_AUTHOR:(创建/修改触发器的作者)
******************************************/