上文的观点在开发小系统,小网站时有用,但是如果处理单表千万级以上数据量的时候显然不合适!
对于管理信息来说,解决报表、权限及资源管理控制、
工作单定义及传递即工作流系统才是最有现实意义的,至于构架,在Web层用JSF开发就足够了!数据持久化
层用EJB或者Hibernate都可以,但无论采用哪种构架,不能为开发者提供报表、权限、工作流层面的快速开发,平台那么从工程角度考虑实用意义就不大。我不知道到处发此贴的人是什么目的,但是从其语气上看有误导新人的意味!数据库,
尤其是大型数据库不会那么短退出历史舞台!“解决性能问题的根本解决之道是使用对象缓存,现在, 64位CPU提供的巨大内存空间为单台缓存计算提供了硬件基础,更重要的是,这种缓存计算是可伸缩的,通过集群的缓存机制(如JBossCache), 通过增加应用服务器的数量,可以提高整个业务逻辑层的缓存计算能力,抛弃过去那种为内存斤斤计较的老思维吧。”我想说的是:银行、电力、电信的数据岂能是内存所能存储的?小公司岂能上那么多高性能计算机???"是如果J2EE应用服务器是7X24小时集群运行;几乎永不当机,是否有持久化的必要呢?" 我想作为一个程序系统设计者要严谨,做人要厚道!“几乎”这样的词不要乱说!万一因大自然灾害导致断电怎么半?而且尚未听说哪个系统不当机,就是一万年出现一次也要小心应对。“每当有一个新项目时,第一步就是首先设计出数据表结构(Table Schema),然后开始使用SQL语句实现业务逻辑,这种开发模式一直重复,就是后来加入了DelPhI/VB,他们也只是承担图形显示实现,这种C/S结构带来最大问题是:非常难于维护,修改起来,迁一动百。”首先,不知道作者使用过Delphi和VB没有,我是从Delphi转向Java,原因是B/S和跨平台,
绝不是什么因为数据库设计不是面向对象方面的原因。我们在Delphi上开发了权限控制平台、
基于Excel的报表快速开发平台、图形化的工作流平台,以及其他用于异常处理、日志读写
等通用的类库,用笔者的话来说就是Model、Patterns和Framework吧,我们用delphi开发大型
项目速度很快,感觉Delphi在数据库访问和数据展示维护方面比Java强多了。JAVA在数据库处理
方便尚处在原始和不成熟阶段,方案很多,但是不能够全面解决问题,所以包括EJB/JDO/HIBERNATE
等都在不停升级。你所觉得C/S程序“常难于维护,修改起来,迁一动百”我认为是设计不合理导致的,其实数据库表和对象区别不大。另外用Delphi的Object Pascal语言也是面向对象的,也可以实现很多种设计模式。对于笔者极度推崇“面向对象技术”的心情我能理解,我也很喜欢“面向对象”但是不要“迷信”,更不要误导新人!
最后要说的是:理论上完美的设计必须迁就用户实际使用的感觉,“面向对象”不能替代数据库,二者各有千秋,而且冲突不大,谈不上谁代替谁,即使代替,也仅可能是“面向对象”的数据库代替”关系数据库“,怎么也不能不需要数据库!

解决方案 »

  1.   

    我们在拥有4台4G内存的基于AIX的Web服务器上开发系统还是要仔细考虑哪些尽量减少在Session中存放对象的数量和大小,而上文作者提出的“抛弃过去那种为内存斤斤计较的老思维吧”我实在不敢苟同!
    物理内存的大小和我们现实生活中的数据相比来说实在少的可怜!
      

  2.   

    to :ltian999(荒野之狼) 
    我不知道到处发此贴的人是什么目的,但是从其语气上看有误导新人的意味!数据库,
    尤其是大型数据库不会那么短退出历史舞台!
    --------------------------
    我就是初学者,正是因为看的一头雾水,所以帖出来,看看大家的意见
    上面都是原文,一字不差!
      

  3.   

    企业可以今天用Java明天用.Net,这很正常,可有哪家企业今天用DB2明天用Oracle?
      

  4.   

    这个话题在j道中引起哗的一大片讨论
    http://www.jdon.com/jive/thread.jsp?forum=91&thread=20162我基本上同意banq的意见,大家不要咬文嚼字,他的意思不是说数据库没有用了,不重要了,而是说软件的重心从数据库偏移到OOX上了。
    事实确实如此,我们现在在做一个系统的时候,数据库是基础设施,像操作系统一样,但我们已经没有必要将太多的精力集中在数据库设计、数据库操作、编写存储过程、数据库优化等这些上面了,而是利用OO思想专注于业务本身,数据库方面的事情大多可以由entity bean、hibernate等o/r映射搞定,数据库对于软件可以说是越来越透明了。