数据库设计命名规范_第1页
数据库设计命名规范_第2页
数据库设计命名规范_第3页
数据库设计命名规范_第4页
数据库设计命名规范_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、1 相关的设计规范:1.1 采用有意义的字段名尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。每个单词的首个字母要求用大写!不要用下划线来连接每个单词.1.2 遵守3NF 标准3NF 规定:A.表内的每一个值都只能被表达一次。B.表内的每一行都应该被唯一的标识(有唯一键。C.表内不应该存储依赖于其他键的非键信息。1.3 小心保留词要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个表,其中就用了DESC

2、作为说明字段名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。1.4 保持字段名和类型的一致性在命名字段并为其指定数据类型的时候一定要保证一致性。假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。2 命名规则: 所有的命名单词的首字都应大写。2.1 数据库(Database的定义数据库名称 = 数据库内容标识(首字大写2.2 表(Table的定义命名应尽量反映存储的数据内容。表名前缀:模块

3、或数据库的缩写,如BBS、OnlineSale(OS。表名称 = 表名前缀 + 表内容标识(首字大写如ClientInfo相关联的一系的表以CI作为前缀,即有表名:CI_History、CI_Contact、CI_Business2.3 字段(Field的定义字段是数据库中的用途最广泛的,它的类型非常多,所以必须用正确的英文单词来表示它的意思。如:bit类型的前缀为Is+功能;Int为功能+Count;money为功能+Price2.4 视图名视图的名称 = "vw" + 视图内容标识(首字大写如 vwUserPerm2.5 触发器名触发类型触发标识-Insert iDel

4、ete dUpdate u触发名= "tr" + 触发标识 + 相应的表名如:triClient,trdClient。2.6 存储过程名存储过程功能存储过程功能前缀-添加 a更新 u删除 d查询或其它 o存储过程名称 = 存储过程功能前缀 + 存储过程内容标识(首字大写如 spoChkUserPerm2.7 变量名每个单词的首个字母为大写,如EmployeeName。2.8 命名中其他注意事项禁止使用中文命名!命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符。命名都采用英文字符,每个单词的首个字母要大写2.9 SQL语句的编写规范数据库中存储过程和

5、触发器中涉及大量的SQL语句,对SQL语句的编写规范如下:关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、 UPDATE、 INSERT INTO、 SET、 BEGIN、END .2.10 Ruleru+Rule标识2.11 主键pk+表名+主键标识2.12 外键fk+表名+主表名+外键标识2.13 索引idx+字段标识2.14 Defaultdf+Default标识3 编程结构和描述SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL语句。批处理中的语句

6、是作为一组去进行语法分析、编译和执行的。触发器、存储过程等数据对象则是将批处理永久化的方法。3.1 注释注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议:1、注释以英文为主。实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。2、注释尽可能详细、全面。创建每一数据对象前,应具体描述该对象的功能和用途。传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量,应给出每个值的含义。3、注释语法包含两种情况:单行注释、多行注释

7、单行注释:注释前有两个连字符(-,最后以行尾序列(CR-LF结束。一般,对变量、条件子句可以采用该类注释。多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。4、注释简洁,同时应描述清晰。3.2 函数注释:编写函数文本-如触发器、存储过程以及其他数据对象-时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:/* * 存储过程:读取用户所分配的操作模块及具体权限* 编制者:saiko* 修改人:* 输入参数:共有2个参数* cUserNo:用户编号* cUserPassword:验证密码* 输出参数:eResult 1. 成功= 销售0001 2. 失

8、败 =Null 3.与 eResult 无关输出是记录集* 调用例子:declare eResult varchar(50 exec uChkUserPerm'0755' ,'123456', '销售'* 说明:* */CREATE PROCEDURE spoxxx3.3 条件执行语句ifelse条件语句块(statenemt block,以beginend为边界仅在if子句的条件为真时才被执行。为提高代码的可读性,建议嵌套不多于5层。还有,当嵌套层次太多时,应该考虑是否可以使用case语句。3.4 重复执行while和跳转语句goto需要多次执

9、行的语句,可以使用while结构。其中,控制while循环的条件在任何处理开始之前需要先执行一次。循环体中的保留字break无条件的退出while 循环,然后继续处理后续语句;保留字continue重新计算while条件,如果条件为真,则从循环开始处重新执行各语句。使用跳转语句goto和标签label也可以方便地实现循环和其他更灵活的操作。SQL SERVER仅具有单通道语法分析器,因此不能解析对尚未创建的对象所做的前向参考。换言之,跳转到某标签的后续语句应该是可执行的(如不存在可能尚未创建的数据对象。3.5 书写格式数据库服务器端的触发器和存储过程是一类特殊的文本,为方便开发和维护,提高代码

10、的易读性和可维护性。规范建议按照分级缩进格式编写该文本。顺序执行的各命令位于同一级;条件语句块(statenemt block,以beginend 为边界位于下一级,类推。SQL语句是该文本的主体。为适应某些教复杂的用户需求,SQL语句可能比较庞大。为方便阅读和维护,规范建议按照SQL语句中系统保留字的关键程度再划分为三级。具体分级请参照下表。其中,非系统保留字(如字段名、数据表名、标点符号相对本级保留字再缩进一级。多个连续的非保留字可以分行书写,也可以写在同一行。当WHERE包含的条件子句教复杂时,应该每行只写一个条件分句,并为重要的条件字句填写单行注释。在保证基本缩进格式的前提下,可以通过

11、对齐某些重要关键字(如条件关键字AND、OR,符号 = 、 <> 等来进一步提高文本的易读性和可维护性。相邻两级的缩进量为10个空格。这也是ISQL编辑器默认的文本缩进量。另外,在ISQL编辑器中,一个TAB键也相当于10个空格。注:按照功能,四类SQL语句(SELECT、INSERT、UPDATE、DELETE的关键字可以划分为三类:主关键字、次关键字、一般关键字。如下表所示:主关键字次关键字一般关键字SELECTINSERT (INTOUPDATEDELETE FROMWHEREVALUESINSERTSELECTFROM 语句中的SELECT和FROM ANDORBETWEE

12、NINLIKE3.6 字体系统保留字应大写,包括系统公共变量等。其他字符(如用户自定义变量、用户自定义数据对象名小写。需要特殊强调的部分可以大写。一条完整注释语句的首字符应大写。对某变量、某条件字句的注释可以全部使用小写。通过下一节中生成表r_a的删除触发器的实例可以部分说明对象命名、注释、基本书写格式和字符大小写方面的一些注意事项。4 触发器编程规范4.1 范例下面通过一个例子,说明触发器编程中应遵守的规范:/* delete related r_a according to deleted table */CREATE TRIGGER r_a_d ON r_aFOR DELETEASIF ROWCOUNT = 0 -no rows deletedRETURN/* delete r

温馨提示

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

评论

0/150

提交评论