数据库表设计完成后,在实际的使用过程中,大多数时候一张表是无法将业务数据展示完整的。这个时候就需要多个表连接查询。
在以前写代码的时候,遇到这样的情况,我一般会新建一个视图,然后再通过视图查询数据。使用起来很方便。但是在后期维护时就会发现,视图与代码里的查询,本质上是分离的,当视图建的多了,项目维护时间久了之后,很多视图到底还有没有用,就很难确定了。同时,需要修改视图引用的表时,就需要级联修改各个视图,非常麻烦。而且很多视图仅仅在一个业务里使用。其他地方完全没有用。
后来我就想,我为什么不在查询的时候直接使用关联表查询,而放弃使用视图呢。这样所有的数据都是来源于表。业务用到哪些表都是一目了然。然后我就把所有的视图删掉了。所以从视图查询数据的地方全部换成了直接关联查询。
再后来,我就发现,我有点矫枉过正了。有些视图,非常的通用,这类视图应该作为视图存在在数据库里,这样在使用的时候会非常的方便。
所以现在,我会把通用的视图创建在数据库中。而其他的数据查询,都使用联合查询来查。