数据库设计规范编码规范文档格式.docx
《数据库设计规范编码规范文档格式.docx》由会员分享,可在线阅读,更多相关《数据库设计规范编码规范文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
4.3设计原则
采用多数据文件
禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MB
oracle数据库中必须将索引建立在索引表空间里。
d)
基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能
e)
大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列
f)
为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。
4.4设计的更新
在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。
运行阶段,由数据库管理员进行维护。
如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。
如果修改的是数据库字典表,必须由数据库管理员进行。
编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改)
修改数据库要通过SQL,禁止其它方式对数据进行修改
修改数据库的SQL要添加说明后保存备查
5
命名总体原则
设定的前缀一律用小写字母
标识名称命名全部小写
整个命名的全长不得超过30个字母
全部使用字母和下划线‘_’,不能使用中文和其他字符,有特别情况允许使用末尾数字编号。
例如:
t_Finace1,t_Finace2...
命名名称来自于业务,全部采用英文单词
英文单词过长可以采用通用的缩写,尽量表达出业务的含义
如需要两个以上的英文单词做标识名称,单词之间要用下划线‘_’连接
名称全是由名词组成的,名词由大范围到小范围排序取名
完成某功能的名称,如函数和过程,以动宾形式取名
6
命名规范(逻辑对象)
6.1数据库结构命名
数据库命名
数据库的命名要求使用与数据库意义相关联的英文字母,即<
业务系统名称>
。
chinacare数据库的命名为ccnet;
客户资料数据库的命名为Customer_Info。
数据库日志设计命名
数据库日志的的命名以<
数据库名>
_<
日志名>
.log格式命名。
其中,<
为有意义的数据库日志名称。
ccnet_logredo.log
数据库配置设计命名
数据库配置设计方案是以文件形式保存的,其内容是关于特定数据库的配置项目的具体值。
数据库配置文件的命名以:
<
数据库类型简写〉_<
应用系统标志>
_cfg.ini格式命名。
其中,数据库类型简写见附件2《数据库类型简写》,cfq表示该文件是数据库配置文件。
ORA_ccnet_cfg.ini
数据库复制与存储设计命名
数据库复制与存储设计方案是以文件形式保存的,其内容是关于特定数据库之间的复制策略的具体细节。
数据库复制与存储设计文件的命名以:
数据库类型简写>
_rep.txt格式命名。
其中,数据库类型简写见附件2《数据库类型简写》,rep表示该文件是数据库复制与存储文件。
数据库连接设计命名
数据库连接设计方案是以文件形式保存的,其内容是关于特定分布式数据库之间的连接设计的具体细节。
数据库连接设计文件的命名以:
_dbl.sql格式命名。
其中,数据库类型简写见附件2《数据库类型简写》,dbl表示该文件是数据库连接设计文件。
表空间、数据文件命名(主要针对Oracle)
索引表空间:
表空间命名格式:
ts<
系统标识>
_i
数据库文件命名格式:
_i[n].dbf
临时表空间:
_t
_t[n].dbf
回滚表空间:
_r
_r[n].dbf
数据表空间:
_d
_d[n].dbf
注:
表空间名不超过8位,n可取00-99或0-9,根据系统数据量确定。
6.2数据库对象命名
表
表的命名必须以“t_”(Table缩写)开头,格式为:
t_[系统标识]_<
数据表类型标识>
表标识>
其中,[]表示可选项,依据实际情况而增加;
要求与表意义相关联的英文字母,例如:
t_Customers。
数据表大致分为:
业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表;
基本编码表用base标志
累计数据表用count标志
系统信息表用info标志...
t_trade_base_trade_code,t_trade_info_help
...
字段/域
根据业务要求进行命名,不需设定固定的前缀。
索引
针对数据库表中一个或多个字段建立的索引的命名格式应以“idx_”开头,索引列名间用_隔开,即为idx_ColumnName1_ColumnName2_…
其中,ColumnName1是数据库表中(第一个)索引字段的名称或名称简写;
ColumnName2是数据库表中(第二个)索引字段的名称或名称简写;
索引名的总长必需符合数据库的规定。
例:
idx_cert_number(表示在字段cert_number上创建索引)
为了避免重名索引出现,可选命名方式为idx_<
表名>
递增号>
作为索引的命名,但是要求在数据字典中进行详细说明
视图
视图的命名必须以“v_”(View缩写)开头,格式为:
v_<
视图类型>
_[系统标识]_<
视图标识>
其中,视图类型参见“表的分类说明”;
[系统标识_]是可选项,依据情况而增加;
应与视图意义相关联的英文字母。
v_user_detail_info
存储过程
存储过程的命名必须符合sp_[系统标识]_<
存储过程标识>
格式。
其中,sp表示是存储过程;
[系统标识]为可选项,依据情况而增加;
是与存储过程意义相关联的英文字母,例如:
USP_Query_Write_to_Disk。
例:
sp_check_user_auth(以动宾方式取名)
触发器
触发器的的命名必须符合tr_<
i,u,d的任意组合>
格式。
其中,tr表示是触发器;
是与触发器意义相关联的英文字母。
tr_user_info_iu(表示对user_info表进行插入、更新的触发器)
g)
函数
函数的命名必须符合fn_[系统标识]_<
函数标识>
其中,fn表示是函数,[系统标识]为可选项,依情况而定;
是与函数意义相关联的英文字母。
fn_create_id(以动宾方式取名)
h)
自定义数据类型
自定义数据类型的命名格式为:
ud_<
自定义数据类型标识>
数据类型>
i)
Default(缺省)
Default(缺省)的命名格式一般为:
df_<
Default标识>
;
对于非绑定的默认可取系统默认的名字,请参见第8.1点实例绑定具体字段。
df_begin_date缺省开始日期‘20030101’
ifexists(select*fromsysobjectswheretype='
D'
andname='
df_begin_date'
)
dropdefaultdbo.df_begin_date
go
createdefaultdf_begin_dateas'
20030101'
j)
Check、Constraint(约束)
约束的命名格式一般为:
ck_<
_<
Check标识>
一些约束可直接放在生成表的语句中。
ck_flag参见第8.1点实例,约束字段flag只能取字符‘0’到‘9’:
constraintck_flagCHECK(flagbetween'
0’and'
9’)
k)
Rule(规则)
规则的命名格式一般为:
rl_<
Rule标识>
对于非绑定规则(约束)可取系统默认的名字,参见第10点设计实例绑定具体字段。
rl_not_zero(定义一个不等于0的规则)
R'
rl_not_zero'
dropruledbo.rl_not_zero
createrulerl_not_zeroas@i<
>
0
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存储过程或触发器
每一个存储过程或触发器都要在最前面写注释,注释如下
/*
writer:
createdate:
ver:
Depiction:
remark:
*/
另外,过程中声明的重要变量要有注释,例如:
@iActionFlag
int=0/*0=>
Checkout,1=>
GetLatest,2=>
UndoCheckOut*/
如果只对存储过程或触发器进行部分修改时须添加以下注释:
/*rewriter:
add(rewriter):
date:
格式:
YYYY-MM-DD>
start1:
修改描述:
/*原代码内容*/(修改时)
end1:
*/
start2:
新代码内容
end2:
如果对存储过程或触发器有较大的修改,可增加修改内容的注释。
/*LogId:
Log编号,从1开始一次增加>
rewriter:
rewritedate:
7.2自定义函数
每一个自定义函数都要在其前面写注释,注释如下
functionname:
xxxx
Depiction:
对此函数的描述>
param(a,b)
a功能或描述....
b功能或描述
output:
x
x=0表示.....
x=1表示......
writer:
createdate:
创建日期,格式:
remark:
*/
另外,函数中声明的重要变量要有注释,例如:
如果只对函数进行部分修改时须添加以下注释:
如果对函数有较大的修改,可增加修改内容的注释。
/*Logid:
修改日期,格式:
8
数据库操作原则
8.1建立、删除、修改库表操作
在开发环境中,对于自己的库表可任意进行修改、删除操作;
但需保留相应的建表语句和说明,与建表人建表时间。
8.2添加、删除、修改表数据
在开发环境中,开发人员所开发模块独自使用的库表,可自由操作表中数据;
对其他模块关联的库表,应取得其他模块的开发人员同意后再执行操作;
系统的信息表、字典表的修改应向数据库的管理员提出操作需求,由数据库的管理员执行操作。
9
常用字段命名(参考)
9.1系统信息常用字段
字段名称
字段代码
ORACLE
SQLSERVER
值
说明
用户标识
user_id
char(8)
用于登录应用系统的标识,填写数字。
一般做主键,要填满长度。
用户名称
user_name
varchar2(20)
varchar(20)
用户标识对应的名称
组标识
grp_id
char(4)
用户所属的组标识,填写数字。
一般做主键,要填满长度。
组名称
grp_name
varchar2(50)
varchar(50)
组标识对应名称
组权限标识
grp_auth_id
char
(2)
由低到高,从00到99。
要填满长度
组权限名称
grp_auth_name
组权限标识对应名称
密码
password
varchar2(30)
varchar(30)
9.2客户个人信息常用字段
客户标识
customer_id
char(?
业务系统使用的客户标识,一般做主键,不用可变长类型。
要填满长度。
客户姓名
customer_name
varchar(50)
部门标识
dept_id
一般做主键,不用可变长类型。
部门名称
dept_name
性别
sex
char
(1)
F/M
以下没有标识的,直接在字段中填写具体值
婚姻状况
marriagestatus
出生日期
birthday
date
smalldatetime
身高
hight
number(5,2)
dec(5,2)
单位为厘米
体重
weight
单位为公斤
民族
nationality
联系电话
phone
家庭电话
home_phone
办公电话1
office_phone1
办公电话2
office_phone2
区号
zone
传真号码
office_fax
移动电话
mobil_phone
电子信箱
email
邮政编码
post_code
国籍
country
居住省
province
居住市
city
家庭住址
home_addr