数据库结构命名规范Word下载.docx
《数据库结构命名规范Word下载.docx》由会员分享,可在线阅读,更多相关《数据库结构命名规范Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
例如:
采购定单的表名为:
T_PO_ORDER,则采购定单的明细表名为:
T_PO_ORDER_DTS。
4)一般表采用“系统名_+T_模块名_表义名”格式构成,其他特殊情况如:
若数据库中只含有单个系统,命名可去掉前缀“系统名_”,采用“T_模块名_表义名”格式构成。
若数据库中只含有单个模块,命名可去掉“模块名”,采用“系统名_+T_表义名”格式构成。
临时表采用“系统名_+T_TEMP_表义名”格式构成。
关联表命名为RE_表A_表B,RE是Relative的缩写,表A和表B均采用其表义名或缩写形式。
A.如果有一个模块叫做BulletinBoardSystem(缩写为BBS),那么你的数据库中所有对象的名称都要加上这个前缀:
T_BBS_+数据库对象名称,T_BBS_CUSTOMER_INFO标示论坛模块中的客户信息表。
B.如果有一个系统叫做行政服务(缩写为XZFW),其中有一张表记录补齐补正业务,由于用英文表达其含有较难或不准确,可以用汉语拼音为其命名:
XZFW_T_+拼音名,XZFW_T_BUQIBUZHENG.1.2列命名规范1)列统一采用“CL_”作为前缀。
2)采用有意义的列名,列名必须是易于理解,能表达列功能的英文单词或缩写英文单词;
如果列的含义用英文表述困难或不准确,也可用汉语拼音字母的方式命名。
无论是完整英文单词还是缩写英文单词,抑或是汉语拼音,不超过三个英文单词,长度不能超过30个字符,一般用完整的英文单词,单词必须大写。
在同一数据表内,不允许同时出现英文和拼音字母两种命名方式的列。
多个单词间用下划线(_)进行连接。
人员信息表中的电话号码所在列可命名为:
CL_TELEPHONE或CL_TEL。
产品明细表中的产品名称所在列名可用CL_PRODECT_NAME表示。
办件表中的审批事项名称所在列名可用拼音字母的方式表示为CL_SPSXMC。
3)表中的主键名使用:
“CL_ID”,其数据类型为varchar,主键数据一律采用java程序或存储过程按照一定的规则生成,不允许采用自增长的数据,如identity,sequences等。
如项目无特定需求,主键生成规则如下:
主键采用字符型,长度为18位XXXXXXXXXXXXXXXXXX前六位代表记录生成的年、月、日,如:
Q71225中间九位代表记录生成的时、分、秒、毫秒,如122009337后三位为生成的随机码,随机码采用java.util.Random生成。
那么2007年12月26日15时44分产生的数据记录,其主键应类似于0712*(注:
主键生成的规则需抽象出具体方法放入底层架构中)4)系统中属于是业务范围内的编码的列,其代表一定的业务信息,比如办件信息和单据的编号,这样的列建议命名为:
业务含义+“_CODE”,其数据类型为varchar,该列需加唯一索引。
如:
组织机构代码可命名为CL_ORGAN_CODE。
5)在命名表的列时,不要重复表名;
例如,在名为T_SYS_USER的表中避免使用名为CL_USERNAME的列,应直接使用CL_NAME。
6)不要在列名中包含数据类型。
7)不要使用“ID”作为列名。
8)关联列命名以“CL_关联表的表义名(或缩写)_列名”构成。
1.3设计规范1)所有列在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、varbinary外,必须有默认值。
字符型的默认值为一个空字符值串;
数值型的默认值为数值0;
逻辑型的默认值为数值0;
其中:
系统中所有逻辑型中数值0表示为“假”;
数值1表示为“真”。
datetime、smalldatetime类型的列没有默认值,必须为NULL。
当列定义为字符串型时建议使用varchar而不用nvarchar。
在Oracle中,不建议使用varchar,建议用varchar2或char类型。
2)尽量遵守第三范式的标准(3NF)A.表内的每一个值只能表达一次;
B.表内的每一行都应当被唯一的标示;
C.表内不应该存储依赖于其他键的非键信息;
D.如果列事实上是与其它表的关键字相关联而未设计为外键引用,需建索引;
E.如果列与其他表的列相关联,需建索引;
F.如果列需做模糊查询之外的条件查询,需建索引;
G.除了主关键字允许建立簇索引外,其他列所建索引必须为非簇索引。
3)列必须填写描述信息2.存储过程(Procedure)命名及设计规范2.1命名规范1)存储过程的命名遵循以下命名规范:
“系统名_+PR_系统模块缩写(与表前缀类似)_功能标识_代表存储过程操作的主要表义名(不带前缀)或功能的英文单词或英文单词缩写”,长度不能超过30个字符。
2)如果一个存储过程只对一个表进行操作,建议存储过程的名称就用存储过程所操作的表的表名(不带前缀)。
这样有利于根据表名找到相应的存储过程。
为了在众多的存储过程中能很快的找到并维护存储过程,我们按存储过程的作用将系统的存储过程进行以下的分类及命名:
(以下示例假设存储过程所在的模块名为ORG)作用第一前缀第二前缀名(示例)用于新增的存储过程PR_ORG_ADD_EMPLOYEE用于修改的存储过程PR_ORG_UPD_EMPLOYEE用于删除的存储过程PR_ORG_DEL_EMPLOYEE用于单据查询的存储过程PR_ORG_QUERY_EMPLOYEE用于报表统计的存储过程PR_ORG_RPT_STATSEMPLOYEE用于一些特殊过程处理的存储过程PR_ORG_OTH_SETSYSTEMMESSAGE(注:
在Oracle中应将存储过程进行分类,按照分类建立不同的PACKAGE,存储过程要从属于某一个PACKAGE。
)3)如果系统中的存储过程只有一级,则遵照以上规则命名,如果存在多级,则需要区分其属于哪一级,具体为“PR+所属的级次+_+后面的部分”表明:
其调用了第(所属级次-1)级的存储过程例如:
1.PR1_ORG_ADD_SUBJECT(没有调用其它存储过程)2.PR2_ORG_UPD_SUBJECT(调用了第1级的存储过程)3.PR3_ORG_QUERY_SUBJECT(调用了第2级的存储过程)2.2设计规范在存储过程中必须说明以下内容:
1)目的:
说明此存储过程的作用。
2)作者:
首次创建此存储过程的人的姓名。
3)创建日期:
创建存储过程时的日期。
4)修改记录:
修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。
修改顺序号的形式为:
log1,log2,log3,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。
5)对存储过程各参数及变量的中文注解。
示例如下:
/*目的:
根据部门与物料和会计区间查询生产现场领料汇总报表作者:
张三创建日期:
-09-13*/*修改顺序号:
log1修改者:
李四修改日期:
-09-14修改原因:
(具体原因详细描述)*/CREATEPROCEDUREPR_GETLMSSUMProductionTypeint=1,-生产类型(1-自制;
-委外加工)DeptIDint=0,-生产部门ItemIDint=0,-物料StartDatedatetime=2001-11-26,-会计区间开始日期EndDatedatetime=2002-12-25,-会计区间截止日期AS/*log1old-自制领料INSERTINTO#LMSDtsSELECTDEPTIDFROMT_DEPT.endlog1old*/-log1new-自制领料INSERTINTO#LMSDtsSELECTDEPTIDFROMT_DEPT.-endlog1new3.函数(Function)命名及设计规范3.1命名规范1)函数的命名遵循以下命名规范:
“系统名_+FU_+系统模块缩写(与表前缀类似)+_+功能标识+代表函数操作的主要表义名或功能的英文单词或英文单词缩写”,长度不能超过30个字符。
2)如果一个函数只对一个表进行操作,建议函数名就用函数所操作的表的表义名。
这样有利于根据表名找到相应的函数。
为了在众多的函数中能很快的找到并维护函数,我们按函数的作用将系统的函数进行以下的分类及命名:
(以下示例假设函数所在的模块名为ORG)作用第一前缀第二前缀名(功能标识)示例用于新增的函数FU_ORG_ADD_EMPLOYEE用于修改的函数FU_ORG_UPD_EMPLOYEE用于删除的函数FU_ORG_DEL_EMPLOYEE用于单据查询的函数FU_ORG_QUERY_EMPLOYEE用于报表统计的函数FU_ORG_RPT_STATSEMPLOYEE用于一些特殊过程处理的函数PR_ORG_OTH_SETSYSTEMMESSAGE3)如果系统中的函数只有一级,则遵照以上规则命名,如果存在多级,则需要区分其属于哪一级,具体为“FU+所属的级次+_+后面的部分”表明:
其调用了第(所属级次-1)级的函数。
1.FU1_ORG_ADD_SUBJECT(没有调用其他函数)2.FU2_ORG_UPD_SUBJECT(调用了第1级的函数)3.FU3_ORG_QUERY_SUBJECT(调用了第2级的函数)3.2设计规范在存储过程中必须说明以下内容:
说明此函数的作用。
首次创建此函数的人的姓名。
创建函数时的日期。
log1,log2,log3,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。
5)对函数各参数及变量的中文注解。
查询生成现场领料汇总报表作者:
(具体原因详细描述)*/CREATEFUNCTIONFU_GETLMSSUMProductionTypeint=1,-生产类型(1-自制;
-委外加工)DeptIDint=0,-生产部门ItemIDint=0,-物料StartDatedatetime=2001-11-26,-会计区间开始日期EndDatedatetime=2002-12-25,-会计区间截止日期AS/*log1old-自制领料INSERTINTO#LMSDtsSELECTDEPTIDFROMT_DEPT.endlog1old*/-log1new-自制领料INSERTINTO#LMSDtsSELECTDEPTIDFROMT_DEPT.-endlog1new4.视图(View)命名及设计规范4.1命名规范1)视图的命名遵循以下命名规范:
“系统名_+V_+系统模块缩写(与表前缀相似)+_+功能标识+代表视图查询的主要表名(不要带前缀)或功能的英文单词或英文单词缩写”,长度不能超过30个字符。
2)如果一个视图只对一个表进行查询,建议视图名就用视图查询的表的名(不带前缀)。
这样有利于根据表名找到相应的视图,为了在众多的视图中能很快的找到并维护视图,我们按其作用系统的视图进行以下的分类及命名:
(以下示例假设视图所在的模块名为ORG)作用第一前缀第二前缀名(功能标识)示例用于单据查询的视图V_ORG_QUERY_EMPLOYEE用于报表统计的视图V_ORG_RPT_STATSEMPLOYEE用于一些特殊过程处理的视图V_ORG_OTH_SETSYSTEMMESSAGE3)如果系统中的视图只有一级,则遵照以上规则命名,如果存在多级,则需要区分其属于哪一级,具体为“V+所属的级次+_+后面的部分”表明:
其调用了第(所属级次-1)级的视图。
1.V1_ORG_ADD_SUBJECT(没有调用其他视图)2.V2_ORG_UPD_SUBJECT(调用了第1级的视图)3.V3_ORG_QUERY_SUBJECT(调用了第2级的视图)4.2设计规范在视图中必须说明以下内容:
说明此视图的作用。
首次创建此视图的人的姓名。
创建视图时的日期。
5)对视图各参数及变量的中文注解。
查询本月所要培训的科目作者:
-09-13*/*log1oldCREATEVIEWV_ADD_SUBJECTASSELECTSUBJECTCODEAS课程编号FROMT_SUBJECT.endlog1old*/*修改顺序号:
学员不需要培训,将不需要培训的课程去掉。
*/-log1newCREATEVIEWV_ADD_SUBJECTASSELECTSUBJECTCODEAS课程编号FROMT_SUBJECT.-endlog1new5.触发器(Trigger)命名及设计规范5.1命名规范触发器命名遵循如下规范:
“系统名_+TR_+表义名(不能带前缀)+_+触发类型简写”,触发器名需大写。
Insert触发器加_INS;
Update触发器加_UPD;
Delete触发器加_DEL。
T_SYS_USER表的Insert触发器为TR_SYS_USER_INS。
5.2设计规范在触发器中必须说明以下内容:
说明此触发器的作用。
2)创建者:
首次此触发器的创建人的姓名。
3)修改记录:
4)对其中各参数及变量的中文注解。
删除TR_SYS_A表中关联的记录作者:
-09-13*/*log1oldCREATETRIGGERTR_SYS_AONT_SYS_AFORDELETEASIFROWCOUNT=0-norowsdeletedRETURNDELETET_SYS_BFROMT_SYS_Bb,deleteddWHEREb.id=d.idIFERROR!
=0BEGINRAISERROR(Erroroccurreddeletingrelatedrecords,16,1)ROLLBACKTRANENDendlog1old*/*修改顺序号:
(具体原因详细描述)*/-log1newCREATETRIGGERTR_SYS_AONT_SYS_AFORDELETEASIFROWCOUNT=0-norowsdeletedRETURN.-endlog1new6.主键(PrimaryKey)命名规范1)任何表都必须定义主键2)表主键命名格式“PK_该主键所在的表义名(不带前缀)_主键标识”。
主键名长度不能超过30个字符。
如果过长,可对表名进行缩写。
缩写规则同表名的缩写规则。
主键名用大写的英文单词来表示。
7.外键(ForeignKey)命名规范外键命名格式为“FK_该外键所在的表义名_对应的主表义名(不含前缀)_外键标识”。
子表义名和父表义名自己用下划线(_)分隔。
外键名长度不能超过30个字符。
如果过长,可对表义名进行缩写。
缩写规则同表名的缩写规则一样。
外键名用大写的英文单词来表示。
8.索引(Index)命名规范1)索引名用大写的英文字母和数字表示。
索引名的长度不能超过30个字符。
2)主键对应的索引和主键同名。
3)每类索引都用_结束。
4)唯一性索引用UNI_开头,后面跟表名(不含前缀),一般性索引用IND_开头,后面跟表义名(不含前缀)。
5)如果索引长度过长,可对表义名进行缩写。
9.约束(Check、Constraint)命名规范约束的命名格式一般为:
CHK_表义名_约束标识。
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)