数据库命名技巧

在以往的项目中,遇到很多种字段命名风格,在开发过程中出现了或多或少的问题,影响了开发人员的理解也降低了开发效率。

1、数据库风格
比如以前有人喜欢把用户表命名为TBL_USER,视图则命名为VIEW_RIGHTS,然后字段又命名为USER_ID,USER_NAME,USER_MOBILE,由于当时使用Hibernate时还不够有经验,搞得生成出来的对象就成了TblUser,ViewRights,然后调用属性时要写tblUser.userId,tblUser.userName,tblUserMobile,搞得编写代码时很难受,特别遇到单词较多、名词较长的表明,那可是一种折磨。
后来吸取到经验了,为了让Hibernate映射出来的对象很舒服就采用了以下风格。

2、对象风格
不管表还是视图均不使用前缀,则用户表变为USER,权限视图变为RIGHTS,然后字段命名规则也不使用表名作为前缀,即字段ID,NAME,MOBILE,然后Hibernate映射出来清爽了。直接写user.id,user.name,代码可读性也增强了,同时说一句,在映射时生成抽象的domain对象,抽象的domain对象主要保存字段信息,这样可以减少由于字段改变时重新映射对domain的影响。

但是最近由于有些项目需要使用iBATIS来完成持久化操作,结果这种命名风格又不适用了。原因何在呢?iBATIS写的是纯粹的SQL语句,在多个表关联时,由于采用对象风格的命名,很多字段都是同名的,为了将结果集映射为对象,不得不在查询中对字段取别名,导致大量的手工操作(辛苦了公司的程序员啊)。
这样下来,又不得不对命名风格进行改进。经过摸索和实践,终于想出了个比较通用的命名风格。

3、综合风格
表名还是USER、RIGHTS(当然为了让表容易区分,也可以加模块名称作为前缀),字段以表名缩写作为前缀(缩写尽量不要重复),则USER表字段命名为UER_ID,USR_NAME。这样在iBAITS作关联查询时就没有必要对字段进行取别名了,因为原则上字段名基本都唯一了。但是大家不禁要问,这不是跟第一种风格差不多吗?用Hibernte还不一样麻烦。关键要看下一步,在下一直用myeclipse的Hibernate映射工具来映射Hibernate和iBATIS所需要的domain对象,因为他支持自定义映射策略,使我们可以很容易的在映射时去掉字段前缀(当然有些工具也支持表名重命名,不过几十个表名和几千个字段名重命名可不是小工作量)。这样就使得这种命名风格既可适用于Hibernate又可适用于iBATIS,同时也可以利用工具快速生成domain,总算有个固定的命名风格了,不用再费脑细胞去考虑如何命名了。

如果大家有好用的映射插件和映射经验,可以相互交流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值