SQLServer数据库设计命名规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLServer数据库设计规范
1 相关的设计规范
1.1 采用有意义的字段名
尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。每个单词的首个字母要求用大写!!!不要用下划线来连接每个单词。
1.2 遵守3NF 标准3NF 规定:
A.表内的每一个值都只能被表达一次。
B.表内的每一行都应该被唯一的标识(有唯一键)。
C.表内不应该存储依赖于其他键的非键信息。
1.3 小心保留词
要保证你的字段名没有保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个表,其中就用了DESC 作为说明字段名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。
1.4 保持字段名和类型的一致性
在命名字段并为其指定数据类型的时候一定要保证一致性。假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。记住,你干完自己的活了,其他人还要用你的数据库呢。
2 命名规则:
2.1 数据库(Database)的定义
数据库名称= 数据库内容标识(首字大写)
2.2 表(Table)的定义
命名应尽量反映存储的数据内容。
表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识
表名称= 表名前缀+ 表内容标识(首字大写)
如ClientInfo相关联的一系的表以ci作为前缀,
即有表名:ciHistory,ciContact,ciBusiness
2.3 字段(Field)的定义
字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。
字段名称= 字段类型前缀+ 字段内容标识(首字大写)
2.4 视图名
视图的名称= "vw" + 视图内容标识(首字大写)
如vUserPerm
2.5 触发器名
触发类型触发标识
-----------------------------------
Insert i
Delete d
Update u
触发名= "tr" + 触发标识+ 相应的表名
如:triClient,trdClient。
2.6 存储过程名
存储过程功能存储过程功能前缀
----------------------------------------
添加a
更新u
删除d
查询或其它o
存储过程名称= 存储过程功能前缀+ 存储过程内容标识(首字大写)
如spoChkUserPerm
2.7 变量名
每个单词的首个字母为大写,如@EmployeeName。
2.8命名中其他注意事项
禁止使用中文命名!!!!!
命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。
命名都采用英文字符,每个单词的首个字母要大写
2.9 SQL语句的编写规范
数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下:关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、GROUP BY、FROM、WHERE、UPDATE、INSERT INTO、SET、BEGIN、END ......
2.10 Rule
ru+Rule标识
2.11主键
pk+表名+主键标识
2.12 外键
fk+表名+主表名+外键标识
2.13 索引
idx+字段标识
2.14 Default
df+Default标识
3 编程结构和描述
SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL语句。批处理中的语句是作为一组去进行语法分析、编译和执行的。触发器、存储过程等数据对象则是将批处理永久化的方法。
3.1注释
注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议:
1、注释以英文为主。
实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。
2、注释尽可能详细、全面。
创建每一数据对象前,应具体描述该对象的功能和用途。
传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
3、注释语法包含两种情况:单行注释、多行注释
单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。一般,对变量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。
4、注释简洁,同时应描述清晰。
3.2函数注释:
编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:
/*************************************************************************** ****************
* 存储过程:读取用户所分配的操作模块及具体权限
* 编制者:saiko
* 修改人:
* 编制日期:2004.11.27
* 输入参数:共有2个参数
* @cUserNo:用户编号
* @cUserPassword:验证密码
* 输出参数:@eResult 1. 成功= 销售@0001 2. 失败=Null 3.与@eResult 无关输出是记录集
* 调用例子:declare @eResult varchar(50)exec uChkUserPerm '0755' ,'123456', '销售'
* 说明:
*
*************************************************************************** ***************/