DataBase-Object-Naming-Guidelines

DataBase-Object-Naming-Guidelines

ID:37503457

大小:192.67 KB

页数:10页

时间:2019-05-24

DataBase-Object-Naming-Guidelines_第1页
DataBase-Object-Naming-Guidelines_第2页
DataBase-Object-Naming-Guidelines_第3页
DataBase-Object-Naming-Guidelines_第4页
DataBase-Object-Naming-Guidelines_第5页
资源描述:

《DataBase-Object-Naming-Guidelines》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据库对象命名参考张子阳jimmyzhang.cnblogs.comjimmy_dev@163.com本文是一个参考,不是一个规范,更不是一个标准。它仅代表了我个人的观点和建议,并只考虑了通常条件下的规则,你可以根据实际情况随意修改它。引言编码规范是一个优秀程序员的必备素质,然而,有很多人非常注重程序中变量、方法、类的命名,却忽视了同样重要的数据库对象命名。这篇文章结合许多技术文章和资料,以及我自己的开发经验,对数据库对象的命名规则提出了一点建议,希望能为大家提供一些参考。NOTE:虽然这篇文章名为“数据库对象命名参考”,实际上,在这篇文章中我不仅介绍了

2、数据库命名的规则,连带讲述了在数据库设计与开发时所需要注意的几个问题。基本命名规则表1.基本数据库对象命名数据库对象前缀举例表(Table)无Student字段(Column)无StudentID视图(View)vvActivity存储过程(Storedprocedure)prprDelOrder触发器(Trigger)trtrOrder_D索引(Index)ix_ix_CustomerID主键(Primarykey)pk_pk_Admin外键(Foreignkey)fk_fk_Order_OrderTypeCheck约束(CheckConstraint

3、)ck_ck_TableColumnUnique约束uq_uq_TableColumn用户定义数据类型(User-defineddatatype)udtudtPhone用户定义函数(User-definedfunction)fnfnDueDate关于命名的约定变量(T-SQL编程中声明的变量)、过程(存储过程或触发器等)、实体(表、字段)应该根据他们所代表的实体意义和进程作用来命名:表2.好的命名和不好的命名范例好的命名不好的命名@CurrentDate@D@ActivityCount@ActNum@EquipmentType@ETprCalculate

4、TotalPrice@prRunCalc还有一个常见的错误就是只使用面向计算机的术语,而不是面向公司业务的术语,比如ProcessRecord就是一个含糊不清的命名,应该使用一个进程业务描述来替换它,比如CompleteOrder.如果完全根据上一条的要求,那么根据业务描述的过程名可能会变得很冗长,比如下面:prCountTotalAmountOfMonthlyPayments(计算每月付费的总金额)prGetParentOrganizationalUnitName(获取上级单位名称)此时则应该考虑使用缩写:ò如果可以在字典里找到一个词的缩写,就用这个做

5、为缩写,比如:Mon(Monday)、Dec(December)ò可以删除单词元音(词首字母除外)和每个单词的重复字母来缩写一个单词。比如:Current=Crnt、Address=Adr、Error=Err、Average=Avgò不要使用有歧异的缩写(一般是语音上的歧义)。比如b4(before)、xqt(execute),4tran(Fortran)表格、字段的命名:单数表名、字段名还是复数表名、字段名?可能大家很少会考虑到给表名起单数还是复数,比如,对存储客人信息的表,我们应该起Customer,还是Customers?我主张起单数表名,下面是来

6、自《SQLServer2000宝典》的一段引用:主张用复数表名的阵营认为:表是由一组记录构成的,所以应当使用复数名词来命名它。他们经常使用的理由是:客户表是客户们的集合,而集合意味着多个,因此应当称他们为Customers表。除非你只有一个客户,但这种情况你根本用不着数据库。根据笔者的非正式调查,有3/4的SQLServer开发人员支持使用单数命名。这些开发人员认为,客户表是客户的集合,而不是客户们的集合。一组行不应当也不会被成为rowsset(行们的集合),而会被称为rowset(行集)。并且,通常在讨论时人们会使用单数名称来称呼表,说Customer

7、表比说Customers表听起来更为清晰。多对多关系中连接表的命名大家知道,如果要实现两个实体间的多对多关系,需要三张表,其中一张是解析表。考虑下面这样一个多对多关系,这是一个经典的学生选课问题:一个学生可以选很多门课,一门课可以有很多学生。此时为了实现上面的关系,就需要一张解析表(这张表只存储学生ID和课程ID,而学生的信息和课程信息分别存在各自的表中),这个表的起名,建议的写法是将两个表的表名合并(如果表名比较长可做简化),此处如StudentCourse。这个表中字段设为StudentId、CourseID(既是此表的复合主键,同时分别为连接Stu

8、dent表和Course表的外键,等下到主键和外键的命名处再说),这样就实现了学

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签