数据库设计规范V100.docx
- 文档编号:24698327
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:8
- 大小:18.07KB
数据库设计规范V100.docx
《数据库设计规范V100.docx》由会员分享,可在线阅读,更多相关《数据库设计规范V100.docx(8页珍藏版)》请在冰豆网上搜索。
数据库设计规范V100
数据库设计规范
撰写时间:
撰写人(签字):
审批人(签字):
审批日期:
变更记录
版本号
修改点说明
变更人
存放位置
审批人
审批日期
目录
一、前言4
二、表命名和设计规范4
三、视图命名和设计规范5
四、表中字段命名和设计规范5
五、主键命名规范6
六、外键命名规范6
七、唯一性约束命名规范6
八、其他约束命名规范6
九、索引命名规范6
十、触发器的命名规范6
十一、存储过程命名规范7
十二、临时表命名规范8
十三、函数命名规范8
十四、序列命名和设计规范(Oracle)9
十五、同义词命名和设计规范(Oracle)9
十六、数据字典书写规范9
十七、数据库设计维护文档规范10
一、前言
为了项目组之间的沟通与交流,增强数据库设计的规范性,在此规定政府采购项目组数据库规范。
规范中强制性条款必须严格遵守。
规范中的建议性条款,各项目组根据实际情况酌情处理,在项目组内部统一管理。
二、表命名和设计规范
表命名和设计规则遵照如下几点:
a)T_Xxx_Yyyyyyyyy。
XXX表示模块的命名缩写,根据项目的具体需要模块名可省略,名称规则变为T_Yyyyyyyyy,以下视图、存储过程、函数命名同样可以省略模块名,但在同一项目内部必须统一;Yyyyyyyyy(长度不定)为表的含义。
例如会议模块的缩写为Met,会议房间表的表名可以为:
T_Met_Room。
对于多个模块公用的表,其前缀为T_Pub_。
视图命名规则:
V_Xxx_Yyyyyyyyy。
具体含义参照表命名规范。
公用视图前缀为V_Pub_。
特别说明:
Oracle数据库采用全大写命名规则,Yyyyyy表名部分可适当使用缩写。
b)关于关联表。
在数据库中为了反映多对多关系而产生的表界定为关联表,这部分表也应该区分,其命名方式应该为“TR_表1_表2”,其中表1与表2的顺序如果表1和表2存在明显隶属关系,则按隶属关系排序,主在前从在后。
否则以表名的正序排列的顺序。
c)对于静态表,如果DBMS为SQLServer,建议采用创建单独用户,如Manager,将静态表放入该用户的schema下。
如果DBMS为Oracle,建议采用创建独立的schema。
d)表名中的单词全部以单数形式书写。
e)每个表必须定义主键,对于除主键之外的单一值约束也要必须建立。
三、视图命名和设计规范
a)基本原则同表命名和设计规范,前缀为V_。
b)复合视图名最后应加上“VC_”以示区分。
四、表中字段命名和设计规范
a)尽量以英文命名。
对于少于8个字符即可完全表示字段和含义的词汇,可取完全拼写;对于8个字符完全英文拼写不能表示的字段,采用4位英文字母缩写表示单个单词,单词缩写相连,首字母大写,最后一个单词为全拼单词的方式。
b)但应注意不要以数据库关键词诸如“DESC”等命名。
c)对于“是否……”含义的标记字段,0表示否,1表示是,字段使用char
(1)类型,尽量不要使用Bit型,以保证未来字段内容扩充。
d)对于存储中文的字段类型原则上使用Unicode类的数据类型(例如Nvarchar、Nchar等),提高系统可用性。
e)对于可变长类字段必须定义可变长的数据类型,不能使用定长类型。
f)对于定长字段必须定义定长类型
g)对于用户ID,密码,编号之类字段(能确定只包含数字和字母)的设置必须用varchar,而不用nvarchar。
h)对于普通数字类型数据,必须使用Numeric或Decimal等类型定义,并标明小数部分位数,不允许使用Float或Double等浮点运算类型定义。
i)对于“状态”、“类型”等具有可能取值的字段。
字段描述中必须要标明都有哪些可能取值,以及每种可能取值的含义。
五、主键命名规范
格式为:
PK_字段名,也可以为PK_字段名。
每张数据表必须要有主键,且业务实体表的主键只能是一个字段。
不允许两个或两个以上的字段作为主键。
数据表不能存在传递依赖。
表中除主键以外的字段必须依赖主键,不能依赖其他键。
例如:
表Table1:
人员id,所属省市,省会,Column1…,就是不符合的,因为省会依赖于省市而不是人员id,造成省会数据冗余。
此问题应该修改表结构。
六、外键命名规范
格式为:
FK_主表名_字段名。
七、唯一性约束命名规范
唯一性约束“UQ_”开头。
八、其他约束命名规范
格式为:
CKC_表名_约束字段名。
九、索引命名规范
格式为:
IX_表名_字段名,联合索引的字段名以下划线分割。
也可以为IX_表名含义_字段名。
十、触发器的命名规范
格式为:
TRG_触发器含义Zzzz。
其中Zzzz表示操作类型,分为4种,Insert,Update,Delete,Other。
例如:
TRG_UserInsert;TRG_UserOther
触发器注释同存储过程。
十一、存储过程命名规范
格式为:
P_Xxx_Yyyyyyyyy。
具体含义如下:
Xxx_表示所在模块;
Yyyyyyyyyy表示逻辑实体名称;
公用存储过程前缀为P_Pub_。
存储过程需要注释,具体注释规则如下:
CREATEPROCEDURE[PROCEDURENAME]
/*
创建人:
创建时间:
存储过程功能说明:
参数说明:
结果说明:
*/
(
参数1类型1,
参数2类型2
)
AS
以后每次修订须在原脚本注释基础上另起一行附加修改说明,格式如下:
/*
修改人:
修改时间:
修改原因:
*/
十二、临时表命名规范
格式为:
TP_表名,其他命名规则参考数据表命名规范。
十三、函数命名规范
格式为:
F_Xxx_Yyyyyyyyy.其中Yyyyyyyyy为函数的具体含义,其它具体含义参照表命名规范。
公用函数前缀为F_Pub_。
函数注释同存储过程。
CREATEFUNCTION[FUNCTIONNAME]
/*
创建人:
创建时间:
函数功能说明:
参数说明:
结果说明:
*/
(
参数1类型1,
参数2类型2
)
AS
以后每次修订须在原脚本注释基础上另起一行附加修改说明,格式如下:
/*
修改人:
修改时间:
修改原因:
*/
十四、序列命名和设计规范(Oracle)
a)序列前缀“SEQ_”。
b)对于序列名后面的部分应该是表名或表名的含义部分。
c)原则上每个序列只能被一个表使用。
d)主键序列采用NoCache参数。
十五、同义词命名和设计规范(Oracle)
a)同义词前缀“SYN_”
b)同义词后面部分不应列出来源表空间,因为其本身就是要隐藏源表,方便使用。
故而在前缀后面直接书写表名的后半部分(不含T_)即可。
c)不允许建立Public的同义词。
十五、Package不允许在开发过程中使用加密工具处理。
十六、数据字典书写规范
数据字典应包含以下内容:
a)表说明,应包含相关表及与之的关系、键、含义。
此外还应注明在本模块中当前表是否为只读。
b)每个表字段说明,应该包含主键、外键、非空、含义、名称、类型、长度等信息。
如果在SQLSERVER中,对于自增字段应该注明自增。
c)约束说明,应说明当前表那些外键依赖于哪个表,哪些为唯一性约束。
d)索引说明,开发人员可用的索引说明。
e)项目数据字典应包含本项目的全部数据对象:
表、视图、触发器等。
十七、数据库设计维护文档规范
a)数据字典作为数据库设计维护的主要文档。
定期对数据字典中表、存储过程等按功能模块进行归类。
b)数据库表、字段、视图、存储过程、触发器发生变更后,除了在数据字典附加说明外,应有变更记录文档记录变更情况及原因。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计规范 V100