Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于数据库表和字段的命名

  平时的变量命名就是很麻烦的事情,总是想不到有什么好的词(也许是我英文水平太渣了)。由于不擅长命名,所以我以前才喜欢用with语句来逃避命名。在VB中With语句是个好东西,可是JavaScript中的with语句显然不符合科学发展观。因此每次需要给大堆变量命名我都泪流满面。和数据库相关的命名比起来,变量命名真不算什么。变量通常都是大堆的局部变量,我甚至可以用单字母来命名。可是数据库相关的对象几乎都是在全局使用的,给他们命名需要用全局变量的标准。而且数据库的操作是很频繁的,要是变量名太长使用起来不方便,这才是问题的关键,因此我也需要一个自己的命名规范。
  首先是最简单的,数据库命名。由于数据库名用的不多,所以长点也无所谓。一般的项目都是单库的,所以使用“项目名”来命名就可以了。如果使用多库的项目可以用“项目名_总业务名”;多个关联的项目可以使用统一的“总项目名_项目名”。比如:xxx_bbs、xxx_mall。
  表的命名就稍微复杂点,因为在查询语句中经常会用到。一般的小项目可以直接使用“业务名”来做表的命名,子表可以使用“主表名_子表名”来命名。不过表明使用的词汇应该是名词的复数形式,这样一样就能看出他们是表,而不是其它什么东西。比如:categories、goodses、orders、orders_details。在小项目中这样对表命名就够了,可是大项目由于表的数量庞大,最好给它们加上前缀。表的前缀是从总业务中取的,而且一般长度是固定的,我通常喜欢取两个字符,就像这样:xb_members、xm_members。其实如果项目使用多库的话就没必要前缀了,前缀只是给单库的项目区分总业务用的。
  接着是字段名。表一般统一使用自增主键,主键名也统一上,我一般命名为“id”。其它字段就都是普通的名词了,比如:“title”、“description”。可是经常会遇到一个词没办法描述一个字段,需要使用词组。这种使用就不要犹豫的直接使用词组,词组中不需要任何分隔符。比如:“username”、“creationtime”。字段也有一些特殊情况,比如外键,这时候就需要复杂点的命名了。我一般使用“表名_字段名”来命名外键,不过这里的表明会使用名词单数形式。比如“member_id”就是关联到“members”表的“id”字段上。由于MyISAM之类的数据库引擎本身不支持外键,我们这样命名就可以很清楚的区分出外键来实现逻辑外键。
  其它东西的命名就没这个多讲究了,比如索引、触发器。由于他们的名字很少在一般查询语句中被使用到,长点也无所谓。所以规不规范其实不太重要。还有存储过程和函数,这些东西按照全局函数的规范来命名就可以了。
  这篇文章只是说了一下我自己使用的命名方式,如果你们有更好的命名方式可以也可以推荐下~ 对于这方面我功力尚浅,请多多指教。
网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^