数据库设计规范


数据库设计规范

文件状态:[ ] 草稿[  ] 正式发布文件编号:SAYE
项目编号: 
责任部门:开发部


版本修订历史

版本日期章节号CADM修订说明作者/参与者审核者
V0.92012-12-01全文C   
       
       
       
       
       
       
       
       
       
       
       
       
       
       

注意:

  1. 修订记录按修订时间序排列;
  2. 对本规格的所有增加、修改或者删除都必须填写修订记录,详细记载其修订内容,使其具备强可追溯性。
  3. 修订类型:C-CREATED创建  A-ADDED增加 M-MODIFIED修改 D-DELETE删除;
  4. 对章节进行修订的务必给出修订章节的超链接;
  5. 版本修改说明:V0.00取三位数字,0.01表示作者或参与者进行修改未经审核,0.1表示审核者已审核完成,1表示里程碑点或通过正式评审通过(包括需求变更评审通过),增长方式以一个单位递增。
  6. 在正式发布之前必须通过审核或审批。

目  录

1 目的 1

2 适用范围 1

3 数据库应用结构 1

3.1 数据表和程序模块的分类 1

3.1.1 数据表分类说明 1

3.1.2 程序模块分类说明 2

3.2 数据表间的关系 2

3.2.1 基本编码表 2

3.2.2 辅助编码表 3

4 命名规范 3

4.1 基本原则 3

4.2 表名命名约定 3

4.3 字段名命名约定 4

4.4 SQL语句命名约定 4

4.5 视图命名约定 4

4.6 存储过程命名约定 5

4.7 触发器命名规范 5

4.8 索引命名规范 5

4.9 包名 5

4.10 函数 5

4.11 序列 5

4.12 Job 6

5 编码规范 6

5.1 代码缩进约定 6

5.2 函数头头注释 6

5.3 函数体内编写规范 7

目的

为了使软件开发过程有章可循,保证软件质量,加强开发管理。

本规范为一套编写高效可靠的 数据库设计命名规范。它以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强,提高生产效率。同时,将带来更大的一致性,使软件开发团队的效率明显提高。

适用范围

本适用于数据库模型的设计和ER图的创建过程,以及SQL语句,存储过程,触发器等。

数据库应用结构

根据对一般业务系统的分析,将数据库和程序系统统一进行整体描述,展示数据库的表之间以及与程序模块间的关系。

3.1 数据表和程序模块的分类

根据“处理特点”,将数据表和程序模块进行分类如下:

数据表分类:业务数据表、基本编码表、辅助编码表、系统信息表等。

程序模块分类:初始化、业务处理、完整性检测与修正、结算处理、统计处理。

3.1.1 数据表分类说明

业务数据表:记录业务发生的过程和结果。如,合同、舱单、报关单等。

基本编码表:描述业务实体的基本信息和编码。如,HS编码、客户、报关企业。

辅助编码表:描述属性的列表值。如,合同类型、职称、民族、计量单位。

系统信息表:存放与系统操作、业务控制有关的参数。如,用户信息、权限、用户配置信息。

3.1.2 程序模块分类说明

初始化:系统运行前对系统业务数据的初始化。

业务处理:业务过程的控制和结果记录。如,报关单、舱单录入、预归类数据录入。

3.2 数据表间的关系

业务数据表<-->基本编码表 主-外键关系。如,报关单表头<-->报关单表体;

业务数据表<-->辅助编码表 主-外键关系。如,报关单表体<-->HS编码;

业务数据表、累计数据表:舱单表头提单总数=舱单表体舱单表体的总计,舱单表头总重量=∑舱单表体舱单表体的重量;

规定除数据库设计所遵循的范式外的一些适用原则,在遵循数据库设计范式的基础上,合理地划分表,添加状态和控制字段等。

3.2.1 基本编码表

1.基本编码表可以有如下的标识列:内编码、外编码、助记码、简称、全称。内编码(唯一编码)作为主键有程序自动生成,用户不可见;外编码(唯一编码)由用户按某种规则自行定义,用户可见;助记码为拼音缩,方便录入,不唯一,重码时由列表选择;简称用于列表显示和报表,以便缩短行宽。以上的列在实现时可视情况和习惯加以删减。

2.当码表的列较多且也行较多时,可将上述的标识列和常用的信息存于一个表,将其它的信息另表存储。

3.2.2 辅助编码表

为了使辅助编码表能起到预期的效能,又不因过多的辅助编码表难以管理,故对辅助编码表的使用作如下规定:

  1. 当某辅助编码表的编码允许用户添加时,应设计成“独立”的数据表;否则,将不允许用户添加编码的各辅助编码表合并成一个“通用”的辅助编码表。
  2. “独立”的辅助编码表与主表的列采用主-外约束保证列数据完整性。
  3. “通用”的辅助编码表与各主表间没有约束关系,主表列的数据完整性由列说明的“域”来保证。
  4. “通用”的辅助编码表除编码和名称列外,还有一个标识列,用来标识合并前的各码表,该标识列+编码列作为该表的主键。
  5. 对于“独立”的辅助编码表,用户只可添加新的编码和改变名称,并且不能改变一个编码所代表的意义;对于“通用”的辅助编码表,原则上不允许用户修改,或只有限地允许修改名称。

命名规范

4.1 基本原则

  1. 表名与字段名称的命名统一采用英文全称或简称,严禁用拼音或缩写。
  2. 数据库的所有的表名、视图名、字段名、存储过程一律采用大写。
  3. 名称中间词的间隔使用下划线”_”。(例如:ADCPHC_BARRIER)

4.2 表名命名约定

  1. 业务表命名:

表名应该由其所在的项目名的简称加上本身的逻辑名称组成。(例如:在区域大通关ADCPHC中,一张表的逻辑名称叫BARRIER,那么该表名应该为ADCPHC_BARRIER)

  • 项目基础参数表命名:

基础参数表命名应该由其所在的项目名的简称加上PARA再加本身的逻辑名称组成。(例如:在区域大通关ADCPHC中,一张表的逻辑名称叫BARRIER,那么该表名应该为ADCPHC_PRAR_BARRIER)

4.3 字段名命名约定

字段名称由字段名的英文(或简称)组成,中间用“_”进行区分。(例如报关单编号,字段名建议应该为ENTRY_ID)。可有多个“_”进行区分但字段名称不超过30个字符

主键,外键等应该在文档和数据字典中加以说明。

4.4 SQL语句命名约定

代码中书写的SQL语句要求SQL关键字、表名和字段名全小写。例如:

select entry_id, g_no, code_list from  entry_list  where entry_id  = ‘200829041245’;

4.5 视图命名约定

为了区分视图名与表名,所有的视图名前必须加“V_”以示区别,需要加模块简称和逻辑名称。(例如:视图逻辑名为ENTRY_LIST,其名称应该为V_ ADCPHC _USER_STATUS)。

关于视图中的字段名,这里不做严格的规定。但是原则上从一张表选出的视图可以不改每个字段的名称,但是如果从多个表中选出的字段,最好采用同一个前缀重新命名。

4.6 存储过程命名约定

存储过程名字前面一律加缩写“PR_”,并添加模块简称和逻辑名称。。(例如:存储过程的逻辑名称为“ENTRY_LIST”,其名称应该为“PR_ ADCPHC _ENTRY_LIST”)。在代码中加上必要的注释

4.7 触发器命名规范

触发器的名称命名按照触发器的缩写命名,前面加缩写“TR_”,例如:

tr_<表名>_<i,u,d的任意组合>  (after)

ti_<表名>_<i,u,d的任意组合>  (instead)

4.8 索引命名规范

索引名字前一律加上“IDX_”,后面添加表名(或简称)和列名。(例如:需要在ENTRY_LIST的ENTRY_ID上添加索引,其名称应该为“IDX_ENTRYLIST_ID”)。

4.9 包名

包名名字前面一律加缩写“PKG_”,并添加模块简称和逻辑名称。。(例如:包名的逻辑名称为“ENTRY_LIST”,其名称应该为“PKG_ ADCPHC _ENTRY_LIST”)。

4.10 函数

函数名字前面一律加缩写“FUNC_”,并添加模块简称和逻辑名称。。(例如:函数的逻辑名称为“ENTRY_LIST”,其名称应该为“FUNC_ ADCPHC _ENTRY_LIST”)。

4.11 序列

序列名字前面一律加缩写“SEQ_”,并添加模块简称和逻辑名称。。(例如:序列的逻辑名称为“ENTRY_LIST”,其名称应该为“SEQ_ ADCPHC _ENTRY_LIST”)。

4.12 Job

JOB名字前面一律加缩写“JOB_”,并添加模块简称和逻辑名称。。(例如:JOB的逻辑名称为“ENTRY_LIST”,其名称应该为“JOB_ ADCPHC _ENTRY_LIST”)。

编码规范

5.1 代码缩进约定

  • 列之间存在上下关系时,必须缩进4个空格(一个TAB)的间距;
  • 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进;
  • where 子句书写时,换行时将and、or等写在换行首列,语句另起一行时,以保留字或者连接符开始,连接符右对齐;

5.2 函数头头注释

编写函数文本--如视图、函数、触发器、存储过程以及其他数据对象时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:

/************************************************************

*name : --函数名

*function : --函数功能

*input : --输入参数

*output : --输出参数

*author : --作者

*CreatedDate : --创建时间

*UpdateDate : --函数更改信息(包括作者、时间、更改内容等)--(更改记录多行,以最新记录在最前面)(基本成型时写更改信息)

************************************************************/

5.3 函数体内编写规范

当在函数体内有条件判断语法、循环判断语法、异常判断语法时,必须被BEGIN和END语法包含,例如:

IF <条件表达式>

BEGIN

<命令行或程序块>

END

ELSIF <条件表达式>

BEGIN

<命令行或程序块>

END

Word源文件可充值购买(充值卡密可联系微信获取,本页有):

此资源下载价格为1名币,请先
客服QQ:39162396;
分享到