多表查询一直是自动代码工具设计的一个难点,单表查询可以根据表结构自动生成所需要的对象类,而多表查询就没有什么好办法,如果写SQL跨越对象直接访问数据库,就明显破坏了代码的层次结构。

不同的人,对同一样东西的定义和认识也会有差别。什么是表?对于DBA来说,表就是存在数据的空间。而对于前台程序员来说,所有的表和视图都是表,都是用来存放数据和查找数据的。什么是视图,对于DBA来说,视图就是虚拟的表,只是一些定义好的SQL语句。而对于前台程序员来说,视图就是所有的查询SQL,任何复杂的SQL都是一张视图。

那么我们回到之前多表查询的解决办法,如果给你一条查询SQL,能不能写成一张视图呢,答案当然是肯定的。那么就把所有的多表查询SQL写视图不就好了吗?当然可以。为每条查询SQL写视图的确是可以的,但这样的SQL往往太多,如果真的这么干,DBA就会找你算账了,^_^。

那再进一步想想,还有什么解决方案呢。有,就是虚拟视图。任何查询SQL都是一张虚拟视图。这些视图跟真实视图一样,有值(指的是查询到该值得方法),有名(别名)。只要有查询SQL,我们就能制造出所需要的对象类。

视图就是表!

posted on 2009-04-19 21:27 目标年薪三千万 阅读(...) 评论(...) 编辑 收藏

公告