版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文档版本version密级Confidentialitylevel1.0无数据库命名及设计标准拟制:张琦拟制日期:2007-12-2评审:评审日期:批准日期:签发:签发日期:ZhuoFanInformationTechnologiesCo.,Ltd.卓繁信息技术〔仅供内部使用〕修订记录:版本号修订人修订日期描述〔注明修改的条款或页〕V1.张琦2007-12-2拟定初稿V张琦2007-12-2参加主键生成规那么V张琦200表中字段命名规那么多个单词用_分割验证签名(Signature):主要主要Author日期Date主要Author日期Date
目录TOC\o"1-4"\h\z第一章:介绍 41.目的 42.范围 43.文档约定 44.参考文档 4第二章:命名及设计标准 51.数据库表(Table)、字段(Field)命名及设计标准 51.1表命名标准 51.2字段命名标准 51.3设计标准 62.存储过程(Procedure)命名及设计标准 62.1命名标准 62.2设计标准 73.函数(Function)命名及设计标准 83.1命名标准 82.2设计标准 84.视图(View)命名及设计标准 94.1命名标准 94.2设计标准 105.触发器(Trigger)命名设计标准 105.1命名标准 105.2设计标准 116.主键(PrimaryKey)命名标准 117.外键(ForeignKey)命名标准 118.索引(Index)命名标准 11第三章:SQL编码及考前须知 121.SQL语言编码标准 121.1大小写 121.2注释 121.3条件执行语句if…else 131.4重复执行while和跳转语句goto 131.5书写格式 13
第一章:介绍1.目的整理编撰本《数据库命名及设计标准》的目的是:增加数据库对象的可读性,在设计上尽量标准化、标准化。方便系统后期维护。2.范围如没有特殊规定,本《数据库命名及设计标准》文档适用于产品中心的所有开发工程的数据库设计。3.文档约定在本标准中,采用标准的文档书写约定,章标题使用粗体三号字,节标题使用粗体的小四号宋体,小节标题采用粗体的五号字体,正文采用正常的五号宋体。术语解释时术语局部加以下划线表示。4.参考文档
第二章:命名及设计标准1.数据库表(Table)、字段(Field)命名及设计标准1.1表命名标准表名用T_开头,表名一般不超过三个英文单词,长度不能超过30个字符。表名必须是易于理解,能表达表的功能的英文单词或缩写英文单词;如果业务表的含义用英文表述困难,也可用汉语拼音的方式命名。无论是完整英文单词还是缩写英文单词,抑或是汉语拼音,单词必须大写。表名中含有单词全部采用单数形式,例如,使用USER,而不是USERS。多个单词间用下划线〔_〕进行连接。假设库中有多个系统,表名采用系统名称+单词或多个单词。系统名是开发系统的缩写,如XZFW。表中含有的单词建议用完整的单词。如果导致表名长度过长,那么从最后一个单词开始,依次向前采用该单词的缩写。〔如果没有约定的缩写,那么采用该单词前4个字母来表示〕。对于有主明细的表来说。明细表的名称为:主表的名称+_DTS。例如:采购定单的名称为:T_PO_ORDER,那么采购定单的明细表为:T_PO_ORDER_DTS例如:如果有一个模块叫做BBS(缩写为BBS),那么你的数据库中的所有对象的名称都要加上这个前缀:T_BBS_+数据库对象名称,T_BBS_CUSTOMER_INFO标示论坛模块中的客户信息表。如果有一个系统叫做行政效劳〔缩写为XZFW〕,其中有一张表记录补齐补正业务,由于用英文表达其含义较难或不准确,可以用汉语拼音为其命名:T_XZFW_+拼音名,T_XZFW_BUQIBUZHENG。1.2字段命名标准采用有意义的字段名。字段的名称必须是易于理解,能表达字段功能的英文单词或缩写英文单词;如果字段的含义用英文表述困难或不准确,也可用汉语拼音首字母的方式命名。无论是完整英文单词还是缩写英文单词,抑或是汉语拼音,不超过三个英文单词,长度不能超过30个字符,一般用完整的英文单词,单词必须大写。在同一数据表内,不允许同时出现英文和拼音首字母两种命名方式的字段。多个单词间用下划线〔_〕进行连接。例如:人员信息表中的号码可命名为:TELEPHONE或TEL。产品明细表中的产品名称可用PRODECT_NAME表示。办件表中的审批事项名称用拼音首字母的方式表示为SPSXMC。表中的主键,名称取为:“ID”,其数据类型为varchar,主键数据一律采用java程序或存储过程按照一定的规那么生成,不允许采用自增长的数据,如identity,sequences等。如工程无特定需求,主键生成规那么如下:主键采用字符型,长度为18位 XXXXXXXXXXXXXXXXXX前六位代表记录生成的年、月、日,如:071225中间九位代表记录生成的时、分、秒、毫秒,如:121009337后三位为生成的随机码,随机码采用生成。〔注:主键生成的规那么需抽象出具体方法放入底层架构中〕系统中属于是业务范围内的编号的字段,其代表一定的业务信息,比方办件信息和单据的编号,这样的字段建议命名为:业务含义+“_CODE”,其数据类型为varchar,该字段需加唯一索引。如:组织机构代码可命名为ORGAN_CODE。在命名表的列时,不要重复表的名称;例如,在名为T_SYS_USER的表中防止使用名为USERNAME的字段,应直接使用NAME。不要在列的名称中包含数据类型。1.3设计标准所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary外,必须有默认值。字符型的默认值为一个空字符值串;数值型的默认值为数值0;逻辑型的默认值为数值0;其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。datetime、smalldatetime类型的字段没有默认值,必须为NULL。当字段定义为字符串形时建议使用varchar而不用nvarchar。在Oracle中,不建议使用varchar,建议用varchar2或char类型。尽量遵守第三范式的标准〔3NF〕。
A.表内的每一个值只能被表达一次;
B.表内的每一行都应当被唯一的标示;
C.表内不应该存储依赖于其他键的非键信息;
D.如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引;
E.如果字段与其它表的字段相关联,需建索引;
F.如果字段需做模糊查询之外的条件查询,需建索引;
G.除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引。字段必须填写描述信息2.存储过程(Procedure)命名及设计标准2.1命名标准存储过程的命名遵循以下命名标准:PR_+系统模块缩写〔与表前缀类似〕+_+功能标识+代表存储过程操作的主要表名〔不带前缀〕或功能的英文单词或英文单词缩写,长度不能超过30个字符。如果一个存储过程只对一个表进行操作,建议存储过程的名称就用存储过程所操作的表的表名〔不带前缀〕。这样有利于根据表名找到相应的存储过程。为了在众多的存储过程中能很快的找到并维护存储过程,我们按存储过程的作用将系统的存储过程进行以下的分类及命名:〔以下例如假设存储过程所在的模块名为ORG〕
作用第一前缀第二前缀名(功能标识)例如
用于新增的存储过程PR_ORG_ADD_EMPLOYEE
用于修改的存储过程PR_ORG_UPT_EMPLOYEE
用于删除的存储过程PR_ORG_DEL_EMPLOYEE
用于单据查询的存储过程PR_ORG_QRY_EMPLOYEE
用于报表统计的存储过程PR_ORG_RPT_GETEMPLOYEE
用于一些特殊过程处理的存储过程PR_ORG_OTH_SETSYSTEMMESSAGE
在Oracle中应将存储过程进行分类,按照分类建立不同的PACKAGE,存储过程要附属于某一个PACKAGE。如果系统中的存储过程只有一级,那么遵照以上规那么命名,如果存在多级,那么需要区分其属于哪一级,具体为:PR+所属的级次+_+后面的局部
例如:
1.PR1_ORG_ADD_SUBJECT
〔没有调用其它存储过程〕
2.PR2_ORG_UPT_SUBJECT
(调用了第1级的存储过程)
3.PR3_ORG_QRY_SUBJECT
(调用了第2级的存储过程)2.2设计标准在存储过程中必须说明以下内容:目的:说明此存储过程的作用。首次创立此存储过程的人的姓名。创立日期:创立存储过程时的日期。修改记录:修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3……,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。对存储过程各参数及变量的中文注解。例如如下:/*
目的:根据部门与物料和会计区间查询生产现场领料汇总报表
张三
创立日期:2007/*
修改顺序号:log1
修改者:李四
修改日期:2007-CREATEPROCEDUREPR_GETLMSSUM
@ProductionTypeint=1,
--生产类型〔1-自制;0-委外加工〕
@DeptIDint=0,
--生产部门
@ItemIDint=0,
--物料
@StartDatedatetime='2002-11-26',--会计区间开始日期
@EndDatedatetime='2002-12-25'--会计区间截止日期
AS/*
log1old
--自制领料
INSERTINTO#LMSDts
SELECTDEPTIDFROMT_DEPT……
endlog1old
*/
--log1new
--自制领料
INSERTINTO#LMSDts
SELECTDEPTIDFROMT_DEPT……
--endlog1new3.函数(Function)命名及设计标准3.1命名标准函数的命名遵循以下命名标准:FU_+系统模块缩写〔与表前缀类似〕+_+功能标识+代表函数操作的主要表名〔不带前缀〕或功能的英文单词或英文单词缩写,长度不能超过30个字符。如果一个函数只对一个表进行操作,建议函数的名称就用函数所操作的表的表名〔不带前缀〕。这样有利于根据表名找到相应的函数。为了在众多的函数中能很快的找到并维护函数,我们按函数的作用将系统的函数进行以下的分类及命名:〔以下例如假设函数所在的模块名为ORG〕
作用第一前缀第二前缀名(功能标识)例如
用于新增的函数FU_ORG_ADD_EMPLOYEE
用于修改的函数FU_ORG_UPT_EMPLOYEE
用于删除的函数FU_ORG_DEL_EMPLOYEE
用于单据查询的函数FU_ORG_QRY_EMPLOYEE
用于报表统计的函数FU_ORG_RPT_GETEMPLOYEE
用于一些特殊过程处理的函数PR_ORG_OTH_SETSYSTEMMESSAGE如果系统中的函数只有一级,那么遵照以上规那么命名,如果存在多级,那么需要区分其属于哪一级,具体为:FU+所属的级次+_+后面的局部
例如:
1.FU1_ORG_ADD_SUBJECT
〔没有调用其它函数〕
2.FU2_ORG_UPT_SUBJECT
(调用了第1级的函数)
3.FU3_ORG_QRY_SUBJECT
(调用了第2级的函数)2.2设计标准在存储过程中必须说明以下内容:目的:说明此函数的作用。首次创立此函数的人的姓名。创立日期:创立函数时的日期。修改记录:修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3……,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。对函数各参数及变量的中文注解。例如如下:/*
目的:查询生产现场领料汇总报表
TONY
创立日期:2007/*
修改顺序号:log1
修改者:ROGER
修改日期:2007-CREATEFUNCTIONFU_GETLMSSUM
@ProductionTypeint=1,
--生产类型〔1-自制;0-委外加工〕
@DeptIDint=0,
--生产部门
@ItemIDint=0,
--物料
@StartDatedatetime='2002-11-26',--会计区间开始日期
@EndDatedatetime='2002-12-25'--会计区间截止日期
AS/*
log1old
--自制领料
INSERTINTO#LMSDts
SELECTDEPTIDFROMT_DEPT……
endlog1old
*/
--log1new
--自制领料
INSERTINTO#LMSDts
SELECTDEPTIDFROMT_DEPT……
--endlog1new4.视图(View)命名及设计标准4.1命名标准视图的命名遵循以下命名标准:V_+系统模块缩写〔与表前缀类似〕+_+功能标识+代表视图查询的主要表名〔不带前缀〕或功能的英文单词或英文单词缩写,长度不能超过30个字符。如果一个视图只对一个表进行查询,建议视图的名称就用视图所查询的表的表名〔不带前缀〕。这样有利于根据表名找到相应的视图。为了在众多的视图中能很快的找到并维护视图,我们按其作用将系统的视图进行以下的分类及命名:〔以下例如假设视图所在的模块名为ORG〕
作用第一前缀第二前缀名(功能标识)例如
用于单据查询的视图V_ORG_QRY_EMPLOYEE
用于报表统计的视图V_ORG_RPT_GETEMPLOYEE
用于一些特殊过程处理的视图V_ORG_OTH_SETSYSTEMMESSAGE如果系统中的视图只有一级,那么遵照以上规那么命名,如果存在多级,那么需要区分其属于哪一级,具体为:V+所属的级次+_+后面的局部
例如:
1.V1_ORG_ADD_SUBJECT
〔没有调用其它视图〕
2.V2_ORG_UPT_SUBJECT
(调用了第1级的视图)
3.V3_ORG_QRY_SUBJECT
(调用了第2级的视图)4.2设计标准在视图中必须说明以下内容:目的:说明此视图的作用。首次创立此视图的人的姓名。创立日期:创立视图时的日期。修改记录:修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3。。。,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。对视图各参数及变量的中文注解。例如如下:
/*
目的:查询本月所要培训的科目
张三
创立日期:200*//*
log1old
CREATEVIEWV_ADD_SUBJECT
AS
SELECTSUBJECTCODEAS课程编号
FROMT_SUBJECT
……
endlog1old
*/
/*
修改者:Dyan
修改日期:2002-12-11
修改原因及内容:学员不需要培训,将不需要培训的课程去掉。
*/
--log1new
CREATEVIEWV_ADD_SUBJECT
AS
SELECTSUBJECTCODEAS课程编号
FROMT_SUBJECT
……
--endlog1new5.触发器(Trigger)命名设计标准5.1命名标准触发器命名遵循如下标准:TR_+表名〔不带前缀〕+_+触发类型简写,触发器名称需大写。Insert触发器加'_INS';Update触发器加'_UPT';Delete触发器加'_DEL'。如:T_SYS_USER表的Insert触发器为TR_SYS_USER_INS。5.2设计标准在触发器中必须说明以下内容:目的:说明此触发器的作用。创立者:首次创立人的姓名。修改记录:修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3。。。,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。对其中各参数及变量的中文注解。例如如下:/*deleterelatedT_SYS_Aaccordingtodeletedtable*/
CREATETRIGGERTR_SYS_AONT_SYS_A
FORDELETE
AS
IF@@ROWCOUNT=0-norowsdeleted
RETURN/*deleteT_SYS_Btablerelatedtodeletedtable*/
DELETET_SYS_B
FROMT_SYS_Bb,deletedd
WHEREb.id=d.id
IF@@ERROR!=0
BEGIN
RAISERROR("Erroroccurreddeletingrelatedrecords",16,1)
ROLLBACKTRAN
END
RETURN6.主键(PrimaryKey)命名标准主键名用PK_开头,后面跟该主键所在的表名〔不带前缀〕。主键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规那么同表名的缩写规那么。主键名用大写的英文单词来表示。7.外键(ForeignKey)命名标准外键名用FK_开头,后面跟该外键所在的表名和对应的主表名〔不含前缀〕。子表名和父表名自己用下划线〔_〕分隔。外键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规那么同表名的缩写规那么。外键名用大写的英文单词来表示。8.索引(Index)命名标准索引名用大写的英文字母和数字表示。索引名的长度不能超过30个字符。主键对应的索引和主键同名。每类索引都用_结束。唯一性索引用UNI_开头,后面跟表名〔不含前缀〕。一般性索引用IND_开头,后面跟表名〔不含前缀〕。如果索引长度过长,可对表名进行缩写。缩写规那么同表名的缩写规那么。第三章:SQL编码及考前须知1.SQL语言编码标准1.1大小写所有关键字必须大写。
如:INSERT、UPDATE、DELETE、SELECT及其子句。
IF……ELSE、CASE、DECLARE等。所有函数及其参数中除用户变量以外的局部必须大写。在定义变量时用到的数据类型必须小写。1.2注释注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。建议:
1、注释以英文为主。
实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为防止后续版本执行过程中发生某些异常错误,建议使用英文注释。
2、注释尽可能详细、全面。
创立每一数据对象前,应具体描述该对象的功能和用途。
传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量〔如boolean类型变量〕,应给出每个值的含义。
3、注释语法包含两种情况:单行注释、多行注释
单行注释:注释前有两个连字符〔--〕,最后以行尾序列〔CR-LF〕结束。一般,对变量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。
4、注释简洁,同时应描述清晰。
5、函数注释:
编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:
/************************************************************************
*name
:
--函数名
*function
:
--函数功能
*input
:
--输入参数
*output
:
--输出参数
*author
:
--作者
*CreateDate
:
--创立时间
*Up
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 26875.10-2026城市消防远程监控系统第10部分:消防设施信息采集装置及接口要求
- 《公共营养师》三级题库含答案(附解析)
- 土工格栅现场数量计算表
- 项目劳务用工岗位安全责任金兑现表
- 精神科护士职业素养
- (辅导班)2026年新高三数学暑假讲义(基础班)第16讲 极值与最值(解析版)
- 广东省汕头市2025-2026学年高考冲刺模拟语文试题含解析
- 26年居家老人心理需求参考课件
- 26年老年护理机构标准化考核标准课件
- 【广东省广州市英语初一下学期期末备考策略精析】
- 2026年江西金融租赁股份有限公司社会招聘14人笔试备考题库及答案解析
- 2026上海药品审评核查中心招聘辅助人员17人考试备考试题及答案解析
- 2026山西晋城市城区城市建设投资经营有限公司招聘15人备考题库含答案详解(考试直接用)
- 2026年信息处理和存储支持服务行业分析报告及未来发展趋势报告
- 北京保障房中心有限公司法律管理岗笔试参考题库及答案解析
- (二模)太原市2026年高三年级模拟考试(二)语文试卷(含答案及解析)
- 2026年上海市长宁区高三下学期二模数学试卷和答案
- 初中化学九年级下册“化学与社会·跨学科实践”单元整体建构教案
- 2026食品安全抽查考试试题与答案
- 2025南京溧水区招聘社保员2人(公共基础知识)测试题附答案解析
- 分子设计育种课件
评论
0/150
提交评论