数据库相关的设计规范

上传人:huo****ian 文档编号:160929089 上传时间:2022-10-12 格式:DOC 页数:10 大小:39KB
收藏 版权申诉 举报 下载
数据库相关的设计规范_第1页
第1页 / 共10页
数据库相关的设计规范_第2页
第2页 / 共10页
数据库相关的设计规范_第3页
第3页 / 共10页
资源描述:

《数据库相关的设计规范》由会员分享,可在线阅读,更多相关《数据库相关的设计规范(10页珍藏版)》请在装配图网上搜索。

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

2、中就用了DESC 作为说明字段名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。 1.4 保持字段名和类型的一致性 在命名字段并为其指定数据类型的时候一定要保证一致性。假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。记住,你干完自己的活了,其他人还要用你的数据库呢。 2 命名规则: 2.1 数据库(Database)的定义 数据库名称 = 数据库内容标识(首字大写) 2.2 表(Tabl

3、e)的定义 命名应尽量反映存储的数据内容。 表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识 表名称 = 表名前缀 + 表内容标识(首字大写) 如ClientInfo相关联的一系的表以ci作为前缀, 即有表名:ciHistory,ciContact,ciBusiness 2.25 字段(Field)的定义 字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。 字段名称 = 字段类型前缀 + 字段内容标识(首字大写) 2.2 视图名 视图的名称 = vw + 视图内容标识(首字大写) 如 vUserPerm 2.3 触发器名 触发类型 触发标识

4、- Insert i Delete d Update u 触发名= tr + 触发标识 + 相应的表名 如:triClient,trdClient。 2.4 存储过程名 存储过程功能 存储过程功能前缀 - 添加 a 更新 u 删除 d 查询或其它 o 存储过程名称 = 存储过程功能前缀 + 存储过程内容标识(首字大写) 如 spoChkUserPerm 2.5 变量名 每个单词的首个字母为大写,如EmployeeName。 2.6 命名中其他注意事项 禁止使用中文命名! 命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符)。 命名都采用英文字符,每个单词的首个字母要大写

5、 2.7 SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、 UPDATE、 INSERT INTO、 SET、 BEGIN、 END . 2.8 Rule ru+Rule标识 2.9 主键 pk+表名+主键标识 2.10 外键 fk+表名+主表名+外键标识 2.11 索引 idx+字段标识 2.12 Default df+Default标识 3 编程结构和描述 SQL SERVER系统中,一个批处理

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

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

8、 * cUserNo: 用户编号 * cUserPassword: 验证密码 * 输出参数:eResult 1. 成功= 销售0001 2. 失败 =Null 3.与 eResult 无关 输出是记录集 * 调用例子:declare eResult varchar(50) exec uChkUserPerm 0755 ,123456, 销售 * 说 明: * */ CREATE PROCEDURE spoxxx 3.3 条件执行语句ifelse 条件语句块(statenemt block,以 beginend为边界)仅在if子句的条件为真时才被执行。为提高代码的可读性,建议嵌套不多于5层。还有

9、,当嵌套层次太多时,应该考虑是否可以使用case语句。 3.4 重复执行while和跳转语句goto 需要多次执行的语句,可以使用while结构。其中,控制while循环的条件在任何处理开始之前需要先执行一次。循环体中的保留字break无条件的退出while循环,然后继续处理后续语句;保留字continue重新计算while条件,如果条件为真,则从循环开始处重新执行各语句。 使用跳转语句goto和标签label也可以方便地实现循环和其他更灵活的操作。SQL SERVER仅具有单通道语法分析器,因此不能解析对尚未创建的对象所做的前向参考。换言之,跳转到某标签的后续语句应该是可执行的(如不存在可能

10、尚未创建的数据对象)。 3.5 书写格式 数据库服务器端的触发器和存储过程是一类特殊的文本,为方便开发和维护,提高代码的易读性和可维护性。规范建议按照分级缩进格式编写该文本。 顺序执行的各命令位于同一级;条件语句块(statenemt block,以 beginend为边界)位于下一级,类推。 SQL语句是该文本的主体。为适应某些教复杂的用户需求,SQL语句可能比较庞大。为方便阅读和维护,规范建议按照SQL语句中系统保留字的关键程度再划分为三级。具体分级请参照下表。其中,非系统保留字(如字段名、数据表名、标点符号)相对本级保留字再缩进一级。多个连续的非保留字可以分行书写,也可以写在同一行。当W

11、HERE包含的条件子句教复杂时,应该每行只写一个条件分句,并为重要的条件字句填写单行注释。 在保证基本缩进格式的前提下,可以通过对齐某些重要关键字(如条件关键字AND、OR,符号 = 、 等)来进一步提高文本的易读性和可维护性。 相邻两级的缩进量为10个空格。这也是ISQL编辑器默认的文本缩进量。另外,在ISQL编辑器中,一个TAB键也相当于10个空格。 注:按照功能,四类SQL语句(SELECT、INSERT、UPDATE、DELETE)的关键字可以划分为三类:主关键字、次关键字、一般关键字。如下表所示: 主关键字 次关键字 一般关键字 SELECTINSERT (INTO)UPDATEDE

12、LETE FROMWHEREVALUESINSERTSELECTFROM语句中的SELECT和FROM ANDORBETWEENINLIKE 3.6 字体 系统保留字应大写,包括系统公共变量等。其他字符(如用户自定义变量、用户自定义数据对象名)小写。 需要特殊强调的部分可以大写。 一条完整注释语句的首字符应大写。对某变量、某条件字句的注释可以全部使用小写。 通过下一节中生成表r_a的删除触发器的实例可以部分说明对象命名、注释、基本书写格式和字符大小写方面的一些注意事项。 4 触发器编程规范 4.1 范例 下面通过一个例子,说明触发器编程中应遵守的规范: /* delete related r_

13、a according to deleted table */ CREATE TRIGGER r_a_d ON r_a FOR DELETE AS IF ROWCOUNT = 0 -no rows deleted RETURN /* delete r_b table related to deleted table */ DELETE r_b FROM r_b b, deleted d WHERE b.id=d.id IF ERROR != 0 BEGIN RAISERROR(Error occurred deleting related records, 16, 1) ROLLBACK TR

14、AN END RETURN此楼回复Re: -谢谢 !此楼回复Re: -数据库设计规范 A 表命名规则  数据库中不论是表名还是字段名,都一律用英文,不准出现其它语言;且保留原来的字段名,保留它们的规范;  为了不增加数据库当中的表名的长度,一般不允许出现如Form或者Table的字样,如:记录表:应为Record,而不是RecordTable  数据库当中的表名的命名,一般不准出现空格,假如有几个单词出现的话,每个单词之间不允许留有空格,用 ”_” 隔开如人事信息表:应为Human_Info,而不是Human Info;每个单词的第一个字母必须大

15、写;如果太长,为了不增加编程的难度可采用缩写的方式,每个单词可取三到四个字母表示,也可根据实际情况,实际习惯进行缩写 B 列命名规则 表中的字段名的命名方式与表名的命名方式一致,只是不需要模块的前缀,但是为了编程的方便性,可在前面加上字段类型的前缀,一般取用类型的三个字母,但是不需要下化线,而且这三个字母必须小写;如姓名字段为字符型的话就应该为chrName;尝用字段类型的缩写可参考下面的表格: 缩写 类型 chr char nvr nvarchar num numeric flt float dtm datetime int Int(integer) mny money img image

16、txt text rel real ntx ntext C 数据库对象命名规则 命名规则为 :对象类型 + 变量的含义 数据库对象命名可归纳如下: 对象 前缀 示例 表 无 Sales_Reps 列 数据类型 intAuthorId 视 图 View vw vwContractAuthors 存储过程 Store Procedure prc prDeleteTerminatedReps 规 则 Rules rl rlZipCheck 默 认 Default df dfStandardQuanity 用户自定义数据类型 dt dtAddressLine 用户自定义功能 fn fnParser 索

17、引(聚集) ic icAuthorFullName 索引(非聚集) in inClientStateCity 主键(聚集) pc pcCustomerId 主键(非聚集) pk pnSstateLookupId 外 键 Foreign Key fk fkRepCompanyId 触发器 Trigger tr trStoreDelete 游标 Cursor cr crTables D 特殊规则  在字段的类型上面,为了不因为系统的设置而造成编程上面的问题,所以只要是日期类型,一般都用字符型来代替,其长度不应该小于10位,而且存储格式统一,如2002-07-15 。 

18、; 为了避免在以后的编程以及字体差异方面带来不利,因此只要是能下拉的字段一般都指定统一的编码,可以取用数字型来代替,但必须著名每个数字代表的意思;如性别字段:可以采用数字代替的方式,1:代表男,0:代表女;而且要在字段后面的备注栏中填写清楚。 此楼回复Re: -收藏此楼回复Re: -top此楼回复Re: -值得学习,收藏起来!此楼回复Re: -/* *= *Name: 数据库命名及设计规范 *RCSfile: 命名及设计规范-数据库.txt *Revision: 0.01Beta *Author: Yehe(叶子) *Released: 2005-01-19 11:25:10 *Descrip

19、tion: 数据库命名及设计规范 *= */ 1.数据库涉及字符规范 我们约定:采用26个英文字母(区分大小写)和09这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。 2.数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。 前缀:使用小写字母 表 tb 视图 vi 存储过程 sp 函数 fn 实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。如 表 User_Info 视图 User_List 存储过程 User_D

20、elete 因此,合法的对象名字类似如下。 表 tbUser_Info tbMessage_Detail 视图 vi_Message_List 存储过程 sp_Message_Add 3.数据库表命名规范 我们约定,表名由前缀和实际名字组成。 前缀:使用小写字母tb,代表表。实际名字中,一个系统尽量采取同一单词,多个后面加_来连接区分。 因此,合法的表名类似如下。 tbMember tbMember_Info tbForum_Board tbBlog_Comment1 4.字段命名规范 我们约定,字段由表的简称,实际名字组组成。如果此字段关联另外的字段,那么加下划线_连接关联表字段的字段名。

21、因此,合法的字段名类似如下。 UserID_MeID UserName UserRegDate 5.视图命名规范 我们约定,字段由前缀和实际名字组成,中间用下划线连接。 前缀:使用小写字母vi,表示视图。 因此,合法的视图名类似如下。 vi_User vi_UserInfo 6.存储过程命名规范 我们约定,字段由前缀和实际名字加操作名字组成,中间用下划线连接。 前缀:使用小写字母sp,表示存储过程。 操作名字:Insert|Delelte|Update|Caculate|Confirm 例如: sp_User_Insert 7.数据库设计文档规范 所有数据库设计要写成文档,文档以模块化形式表达。大致格式如下: - 表名: tbUser_Info 作者: Yezi(叶子) 日期: 2004-12-17 版本: 1.0 描述: 保存用户资料 具体内容: UserId int,自动增量 用户代码 UserName char(12) 用户名字 . - 8.sql语句规范 我们约定,所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!