比如客户表中的区域,级别,类型,行业等基础属性,在客户表中保存的只是这些属性的主键,查询客户属性要在hibernate中在做很多关联,写SQL这样的基础数据关联更让人头痛,对待这样基本数据关联查询有没有什么最好的解决方案?
对此我觉得你可以做一些适当的冗余设计。
适当的数据库冗余也是必要的,不然查询时候做过多的表连接一样影响性能。
比如你可以既存zoneid,又存zonename,查询的时候不需要做表连接,但是你update zone的时候,要同时更新这个zonename的值。
这样设计当你查询数量远远大于更新次数的时候可以提高不少查询性能。因为一般情况下,一个分类或者区域,你可能也很少去改动,不会经常需要执行这样额外的更新操作。你稍微看一下一些著名开源项目的数据库设计就会发现很多这种为了提供性能而做的冗余。