文档介绍:该【数据库编码标准 】是由【HShess】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【数据库编码标准 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数据库编码标准
MIS系统课程设计规范(草案)
使用windows操作系统
使用SQLServer或ACCESS数据库
使用团队熟悉的一种开发语言,如:VB,Delphi,ASP,JSP,Java……
需求文档规范
设计文档规范
程序编码标准
附录:
数据库编码标准
关键字采用大写。
系统定义的对象及数据类型采用小写。
引用变量、参数、列名,以及表、过程和视图
对齐。例如:
SELECTCustomerID,Companyname,ContactName,ContactTitle,Address,City,
Region,PostalCode,Country,Phone,Fax,
WHERECityIN('London','Madred')
字句与谓词
,如果将一个复合句的组成部分放置在同一行中,则通常用圆括号分隔它们。例如:
SELECTCustomerID,CompanyName,ContactName,ContactTitle,Address,City,
Region,PostalCode,Phone,Fax,
WHERECity='China'
ORCity='London'
ORCity='Madrid'
表达式
如果一个CASE表达式比较简单,则我通常将其嵌入单一的代码行。如果它比较复杂,则
将其拆为多行。对于函数及其他类型表达式也如此,例如:
SELECTCustomedD,CompanyName,ContactName,ContactTitle,
Phone,CASEWHENFaxIsNULLTHEN’N’ELSE’Y’ENDAS[Fax]
WHERECity='London'
较复杂的CASE表达式通常占用多行
SELECTCASERegion
WHEN'WA'THEN'Phil'
WHEN'SP'THEN'Xavier'
WHEN'BC'THENJ'Jean-Marc'
ELSE'Unknown'
ENDASSalesman,
CustomerID,CompanyName,ContactName,
ORDERBYSalesman
。
。
。
对于列与表的别名通常使用的是ColumnNameAsLabel,建议表的别名用一个或两个缩写字符。在SELECT列表中的列名前应用各自的表别名作为列引用的前缀,其理由有两个。第一,它增加了代码的可读性。不必猜测一个列是源自哪里。第二,它增强了代码的健壮性。如果您在此后向查询中增加一个表,该表恰巧包含一个与未限定的列同名的列,则将得到令人讨厌的“不确定的列名”错误消息。
关键字
对于可选关键字。一般应在自己的代码中省略它们。这种代码决不会产生语法错误,决不会中断,决不会通过对工具的修改而变得失效,而且不占用宝贵的屏幕资源。其中的例外就是与INSER
T命令一起的INTO关键字不要省略,因为在ORACLE数据库中必须这样,以及与DELETE命令一起的FROM关键字要省略。
当您在自己创建的对象名中缩写常见单词时,请尽量保持一致。如果在一个名称中将number缩写为“Num”,则在所有对象中都做类似的缩写。不要在一个表中缩写为“No”(如,CustNo),而在另一个表中又缩写为“Number”(如,InvoiceNumber)。请保持一致。
当命名一个对象时,要避免表、视图、UDF、过程、触发器、默认值和规则对象之间的命名冲突,因为它们的命名必须唯一。例如,不能让一个存储过程和一个表拥有相同的名称。如前所述,尽量保持命名的描述性,而不放任自流。
表
对于表,通常应使用单个单词的单数形式的实体类型名称(如,Customer)。如果表与其它表有关联,应尽量建立主键与外键。
视图
对于视图,通常应使用V_开头,加上有意义的描述性单词(如,V_Customer)。
索引
索引命名应据用描述性,见名知意,如果一个索引是建立在表Customer的CompanyName和ContractName列之上,则好的命名应为CompanyNameContractName或类似的名称,因为索引不必在整个数据库中唯一,这样只看一下名称就可以知道该索引的主键是什么。
触发器
对于触发器,使用这样一种命名规则,它表示激发触发器的动作和该触发器所关联的表名(如,DeleteCustomer或InsertUpdateOrder)。如果触发器拥有特别的特性(如,它是一个INSTEADOF触发器),则通常通过一个名称的前缀来表明这一点(如,InsteadOfDeleteCustomer)。建议:除非别无它法,否则应尽可能避免使用触发器。
变量
。
过程和函数
过程与函数应以基于动词的形式命名,如PostPurchases或BuildHistory。
约束
约束的命名应能区分是哪一各类型的约束,并能根据名称知道该约束是干什么的,通常主键前加前缀PK_,外部键加前缀FK_,唯一键加前缀UK_,检查约束加前缀CK_,如:PK_EmployeeID,CK_Amountmustnotequal0。建议:如果表中的某列或多列不可以出现重复记录,应尽可能地在这此列上建立唯一约束。
脚本建议
对象删除
试图删除一个对象之前应检查其存在性。不这样做会不必要地生成错误消息,甚至当DROP命令被分割在其自己的T-SQL批处理之中。错误消息应该是一种会引起您注意的内容,而不是一种可以经常被忽略的内容。应避免生成不必要的错误消息,以免变得对它们熟视无睹。
注释
通过平衡澄清含糊与不确定的编码元素的需求与让代码免于噪声和不必要干扰的需求,来确定在自己的代码中
“注释”什么。过分的注释与注释不足同样不可取。过分注释一个脚本将给您带来大量的工作,还不能真正改善代码的可读性。
当处理某些从编码的角度来看不是显而易见的,并且那些继续处理此编码的人应该知道的内容时,才应注释它。任何有意义的存储过程都应该在其开始处包含一个代码块,用来描述该过程以及该过程做什么。如同对待任何源代码过程,跟踪诸如谁修改了代码和修改代码的时间等事项也可以是非常方便的
注释应尽量用斜线-星号(/*…..*/),而少用双斜线(//)
脚本文件
一般而言在一个单独的脚本文件中保存自己所创建的每个数据库对象的源代码。对于重新创建或修改对象而言,这样做提供了最大的灵活性。
脚本段
如果脚本包含多个没有共享局部变量的不同段,那么通常用GO来分隔各个段,以便模块化所要执行的操作。按照这种方式,如果在其中一个段出现错误,则可以防止它引起紧跟其后的段出错。相反地,如果