我看过了几个开源的项目 比如JForum和bbscs等等 他们的数据库的建立都是基于数据表的 都没有使用视图的方式 但是在书本上学的好象多表关联比较推荐视图的处理方式 我在项目中用的和看到的原有设计也都没有使用视图 请问这是什么原因 是为了适应多数据库支持还是说视图的应用存在什么弊端
问题补充:
那也就是说 我之前在的公司在在做报表时在程序里使用多表联结也不就是正确的 对吧 比较;b/s oa办公系统报表情况还是很普遍的 我这个说法没有什么错误吧
问题补充:
说的很有道理 看来我在大规模查询时建立视图处理是比较正确的 我觉得是不是从某种程度上讲 有些hibernate使用中不使用视图也和需要重新建立映射文件有关? 毕竟使用现有的po组成查询和新建一个映射单独查询工作量上还是有点区别的吧
问题补充:
之所以论坛里提出这个问题 当然现在被挪到这里了 就是因为在原公司使用视图的时候受到过一点点质疑 而且别人也不怎么用 搞的我自己都怀疑自己了 那个oracle数据库里面一共才有5个视图 除了我建立的2个 剩下几个都差不多废弃掉了 唉
问题补充:
原来都这么感慨哦 不过却是实情
[size=medium]视图就是这个样子的
把一堆对你有用的数据做成一个临时表存下,当你调用视图的时候你就能很方便的得到这部分数据
视图一般用在大数据量的表中,比如一张表有2,3千万的数据,最好建立一个视图,视图的大小为2000左右,这样做可以减轻很多数据库的压力,你想想,在2000左右的表中读取数据,和在2000多万的表中读数据,这能一样吗?
或者级联关系比较多的表也最好做个视图,因为级联都做笛卡尔积的如果4表级联每个表有2000条数据,你搜索是这样进行的2000x2000x2000x2000=16000000000
你看到了吧,很多的数据哦,所以做个视图还是有必要的
视图弊端应该是不灵活吧,但是这个东西就是个临时表,在怎么灵活也没有意义呀
有很多地方都不用的视图的存储过程,比较主要的原因是精通这些东西的人少,一个dba是要很多钱地
呵呵,跟人看法[/size]
:arrow:
经常用到的多表连接建议使用视图
如果就用几次,没必要建一个视图
建立视图和程序里写多表连接是一个道理,没有效率的问题
对,没有错误
[size=medium]呵呵,hibernate中是通过自己的一个东西来处理类似视图问题的
他的名字的叫做二级缓存
但是效果真的不是很理想。。。
呵呵,尤其是再集群中二级缓存根本就是废物,当然,有可能是我应用不当所导致的
但是我觉得,虽然有二级缓存,但还是和视图存在一定的距离
呵呵,个人观点[/size]
:arrow:
[size=medium]其实数量不大的时候大家都认为视图垃圾,还要维护,不灵活,云云
但数据量出现瓶颈的时候,他们就该头疼了,当初怎么不用视图呢
呵呵
现在的工程大多都是赶工期的产物,如果要求太多了也确实不显示
如果一个项目能经过完整的设计,那就相当不错了
所以导致,现在项目质量底下。。。这也没办法,时间太紧,这是大环境所导致的
哎,国内的软件还是这样的,不重视复用和设计,所以写出来的东西。。。
有很多人都说现在的程序员不是写程序,是写bug
哎。。。。
呵呵,貌似跑题了。。。[/size]
:arrow: