数据库命名规则

这么多年的开发,始终未离开过数据库应用.从MSSQL到Oracle,现在又要mysql,真是要命.为了不让数据库的设计工作全压在一个人身上,所有队员都可能会做一部分工作,为自己负责的需求建立表结构.于是统一数据库的表名和字段名规则就不可避免.不过在做数据库设计时常常遇到同事对表名,字段名设计规则的质疑.因为到现在为止,我确实没有发现很通用的设计规则,在不同的项目环境下可能会启用不同的规则.

我最常用的规则:
1.表名分两部分组成--前缀_主题.如库存表whs_inventory,whs是前缀,表明这是用于仓库模块的,inventory是主题,表示这个表的业务概念.
2.字段名也分成两部分--前缀_主题.如库存数量inv_amount.inv是库存表的缩写,amount是主题,表示这列用来存储库存的数量.
3.外键的引用.如果库存表中引用了货品的ID,那么那一列就用Crg_id,而不是inv_crgid或inv_cargo_id.

现在问题就出来了,以前是手工建立相关的POJO,所以不是什么大问题.现在要通过Appgen或是Middlegen,生成的类名,字段名和Mapping文件名都不符合要求.如果用Maven生成代码的话,要改动的地方更多,想起来就恐怖!能想到的方法就是先生成Mapping文件,把不符合要求的类名和字段名全部改过来,然后再根据Mapping文件生成POJO.但是效率就低很多了.

候先的规则:
1.表名没有前缀,直接用主题命名.库存就是inventory,不做模块的划分.
2.字段名也甩掉前缀,该是什么就用什么.
3.外键字段用表名和字段名.如cargoId.这一点有个小问题,如果货品ID在多个表中被引用,可能会出现不同的形式,cgrId, cargo_id.这一点常常令人头痛.

当然了,数据库设计规则函盖的内容很多,这里我只谈到表名和字段的命名规则.希望大家能够他享更多更有效的最佳实践.

补充:
现在使用appfuse2.x,通过mvn appfuse:gen-model先生成POJO,修改后再用mvn appfuse:gen生成相应的其它代码。爽!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值