给SQL对象命名

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
本文译自Builder.com,未经许可请勿转载

匈牙利符号(命名系统)会在给所有对象命名的时候在前面加上一个前缀,用来表示正在被命名的对象的类型。微软在某种程度上将匈牙利符号用在SQL服务器的很多对象上:系统存储过程都带有前缀“sp_”;扩展存储过程带有前缀“xp_”;而函数带有前缀“fn_”。根据微软的命名方式,很多开发人员也用类似的方式给他们的对象命名。我反对使用这种利用前缀来命名的方式,主要原因是,它们会掩盖掉它们是由微软编写的还是由我们团队编写的这一事实。

但是,就目前而言,我们先把前缀的问题放到一边;更重要得多的事情是名称的其他部分。在这里我发现了两种派系的命名方法:动作对象(Action-Object)和对象动作(Object-Action)。下面是一些例子:

动作对象
DeleteClient
GetClientInfo
InsertClient
UpdateClientInfo

对象动作
ClientDelete
ClientInsert
ClientSelect
ClientUpdate

动作对象命名法所存在的主要问题是排序。为了找到和任何给定表格相关的所有存储类型,你必须要用到至少字母表里的四个字母,然后才能找到包含有“Client”的对象。形成对比的是,对象动作命名法把所有和Clients表格相关的东西都集中到一起。这种命名方式带来了多种重要的优势,包括:

  • 开发人员只用看看给定的存储过程要做什么,就立即能够知道需要怎么给它们命名。 对于更加复杂的过程,开发人员很容易就能够看到什么可以被重新用到新任务里。 维护人员会直观地知道要在哪里解决不易察觉的问题。 新雇佣的人员能够在很短的时间内就适应这种命名方式。

    查看表稍稍有点不同,因为有些查看表是可以更新的,而有的则不行。这种不同也应该要体现在对象的名称里。

    • 所有的可更新查看表都应该标上“vup”。 所有的只读查看表都应该标上“vro”。

      函数也稍稍有点不同。由于SQL服务器同时提供标量和表格函数,所以我采用了下面的命名方式:

      • 标量函数应该被标示为“fns”。 表格函数应该被标示为“fnt”。

        现在让我们回到前缀的问题。在我看来,这种方式会影响信号增加噪声。我希望和表格X相关的所有对象都以X开头。我使用了匈牙利符号,但是我将其标记用作后缀而非前缀,因为它们有利于了直观的排序;所有和Clients表格相关的东西都被排在一起。想想下面这些名称,并猜猜它们会进行什么样的动作:

        CustomerSelect_fnt——会返回表格的函数
        CustomerBalance_fns——会返回标量值的函数
        CustomerUpdate_ap——更新数据行的应用过程
        OrdersSelectByCustomer_vro——通过Customer来选择Orders的只读查看表

        (命名)方式,就像语言一样,不是一成不变的。的。规则来来往往,被新的规则取代。我知道我的命名方案不是完美的,但是我正在对它进行研究。

        我期望收到对我这种(命名)方式的激励,以及,如果可能的话,建设性的替换方案。请给编辑发送电子邮件,发表你对这种方法的看法。


        本文作者:Arthur Fuller开发数据库应用程序已经有20年了。他的专业经验包括Access ADPs、微软SQL 2000、MySQL和.NET。


        责任编辑:"mailto:li_ning@zdnet.com.cn?subject=http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39201800,00.htm ">李宁

        欢迎"http://forums.zdnet.com.cn/cgi-bin/leoboard.cgi" target=new>评论或"mailto:li_ning@zdnet.com.cn?subject=投稿:(稿件题目)">投稿 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
        <script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值