数据库表及字段命名、设计规范.doc_第1页
数据库表及字段命名、设计规范.doc_第2页
数据库表及字段命名、设计规范.doc_第3页
数据库表及字段命名、设计规范.doc_第4页
数据库表及字段命名、设计规范.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库表及字段命名、设计规范1、命名规范1.1数据表的命名规范:1)表的前缀应该用系统或模块的英文名的缩写(全部大写或首字母大写)。如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀。例如:如果有一个模块叫做BBS(缩写为BBS),那么你的数据库中的所有对象的名称都要加上这个前缀:BBS_ + 数据库对象名称,BBS_CustomerInfo标示论坛模块中的客户信息表。2)表的名称必须易于理解,使用能表达表功能的英文单词或缩写英文单词,无论是完整英文单词还是缩写英文单词,单词首字母必须大写。如果当前表可用一个英文单词表示的,请用完整的英文单词来表示;例如:系统资料中的客户表的表名可命名为:SYS_Customer。如果当前表需用两个或两个以上的单词来表示时,尽量以完整形式书写,如太长可采用两个英文单词的缩写形式;例如:系统资料中的客户物料表可命名为:SYS_CustItem。3)表的名称一般使用名词或者动宾短语4)表名称不应该取得太长(一般不超过三个英文单词)。5)在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。6)对于有主明细的表来说。明细表的名称为:主表的名称 + 字符Dts。例如:采购定单的名称为:PO_Order,则采购定单的明细表为:PO_OrderDts对于有主明细的表来说,明细表必须包含两个字段:主表关键字、SN,SN字段的类型为int型,目的为与主表关键字联合组成明细表的关键字,以及标示明细记录的先后顺序,如1,2,3。7)表必须填写描述信息7)后台表名尽量与前台表名相同,后台独有的表应以_b作为后缀。如r_gggd_b1.2表字段命名规范数据库字段的命名必须遵循以下规范:1)字段名称一般采用名词或动宾短语,且字段名为小写。2)采用有意义的字段名。字段的名称必须是易于理解,能表达字段功能的英文单词或缩写英文单词,单词首字母必须大写,一般不超过三个英文单词。例如:人员信息表中的电话号码可命名为:Telephone或Tel。产品明细表中的产品名称可用ProductName表示。(推荐一般用完整的英文单词)。3)系统中所有属于内码字段(仅用于标示唯一性和程序内部用到的标示性字段),名称取为:“ID”,采用整型或长整型数,具体根据可能的数据量确定,增加记录时取最大值加1,该字段通常为主关键字。4)系统中属于是业务范围内的编号的字段,其代表一定的业务信息,比如资料信息和单据的编号,这样的字段建议命名为:“Code”,其数据类型为varchar,该字段需加唯一索引。5)在命名表的列时,不要重复表的名称;例如,在名为 Employee 的表中避免使用名为 EmployeeLastName 的字段。5)不要在列的名称中包含数据类型。2、设计规范2.1数据类型规范1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值。字符型的默认值为一个空字符值串;数值型的默认值为数值0;逻辑型的默认值为数值0;其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。 datetime、smalldatetime类型的字段没有默认值,必须为NULL。2)当字段定义为字符串形时建议使用varchar而不用nvarchar。3)建议在大多数表中(如报销单,申请单),应都有以下字段:字段名 说明 类型 默认值CreatorID 创建者 int 0CreatedTime 创建时间 Datetime NULL2.2字段的规范数据库中每个字段的规范描述(Description)如下:1)尽量遵守第三范式的标准(3NF)。2)表内的每一个值只能被表达一次3)表内的每一行都应当被唯一的标示4)表内不应该存储依赖于其他键的非键信息5)如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引。6)如果字段与其它表的字段相关联,需建索引。7)如果字段需做模糊查询之外的条件查询,需建索引。8)除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引。9)字段必须填写描述信息3、SQL语言编码规范3.1大小写规范1)所有关键字必须大写如:INSERT、UPDATE、DELETE、SELECT及其子句。IFELSE、CASE、DECLARE等。2)所有函数及其参数中除用户变量以外的部分必须大写。3)在定义变量时用到的数据类型必须小写。4)所有关键字必须大写3.2注释注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议:1)注释以英文为主。 实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。2)注释尽可能详细、全面。创建每一数据对象前,应具体描述该对象的功能和用途。传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。3)注释语法包含两种情况:单行注释、多行注释单行注释:注释前有两个连字符(-),最后以行尾序列(CR-LF)结束。一般,对变量、条件子句可以采用该类注释。多行注释:符号之间的内容为注释内容。对某项完整的操作建议使用该类注释。4)注释简洁,同时应描述清晰。5)函数注释:编写函数文本-如触发器、存储过程以及其他数据对象-时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:CREATE PROCEDURE sp_xxx3.3条件执行语句ifelse 条件语句块(statenemt block,以 beginend为边界)仅在if子句的条件为真时才被执行。为提高代码的可读性,建议嵌套不多于5层。还有,当嵌套层次太多时,应该考虑是否可以使用case语句。3.4重复执行while和跳转语句goto 需要多次执行的语句,可以使用while结构。其中,控制while循环的条件在任何处理开始之前需要先执行一次。循环体中的保留字break无条件的退出while循环,然后继续处理后续语句;保留字continue重新计算while条件,如果条件为真,则从循环开始处重新执行各语句。使用跳转语句goto和标签label也可以方便地实现循环和其他更灵活的操作。SQL SERVER仅具有单通道语法分析器,因此不能解析对尚未创建的对象所做的前向参考。换言之,跳转到某标签的后续语句应该是可执行的(如不存在可能尚未创建的数据对象)。3.5书写格式 数据库服务器端的触发器和存储过程是一类特殊的文本,为方便开发和维护,提高代码的易读性和可维护性。规范建议按照分级缩进格式编写该文本。 顺序执行的各命令位于同一级;条件语句块(statenemt block,以 beginend为边界)位于下一级,类推。SQL语句是该文本的主体。为适应某些教复杂的用户需求,SQL语句可能比较庞大。为方便阅读和维护,规范建议按照SQL语句中系统保留字的关键程度再划分为三级。具体分级请参照下表。其中,非系统保留字(如字段名、数据表名、标点符号)相对本级保留字再缩进一级。多个连续的非保留字可以分行书写,也可以写在同一行。当WHERE包含的条件子句教复杂时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论