有个问题,在利用SSH写项目时候,数库的设计是什么样的呢?因为看见一些代码用ssh写的,其数据库的就是类型定义和设计一个主键,哪些外键都不设计。知道hibernate中有设置关联,但这样就觉得不是这个味,这样做的话数据库设计好像就失去了它的意义。而且听人说,一般的话,数据库的设计尽量减划,约束在前台实现。我想弄清楚的是,如果用hibernate写东东,是不是就把数据库写的简单,那些约束都不在数据库中设计呢!实际开发中,数据库这块是怎么样设计的呢!

解决方案 »

  1.   

    hibernate的完美应用可以简化很多数据库的设计,使得项目开发中数据库的设计占得比例下降,好好去研究下,祝你好运!
      

  2.   

    通常是先设计域模型,然后再考虑如何将域模型映射到关系数据库中
    可以参看Domain Driven Design这本书
      

  3.   

    有点初步个人感觉。hibernate在实体注解好数据之后,可以定义关联的关系。
    之后一些调用,其实hibernate相当于自动帮你写好一个复杂的或者多个sql。你定义的关联关系越复杂,那么执行一次,就是比较复杂的一个或者多个sql帮你执行了。若换成ibatis,那么一切都需要你自己写代码。
      

  4.   

    数据库设计跟 SSH 有什么关系?SSH 一统天下的时代,Java 的悲哀啊
      

  5.   

    SSH的时代确实是java的悲哀,一些人把什么都跟SSH扯上关系。
      

  6.   

    ssh的一个优势,我个人感觉,在于关系比较复杂的定义上,h比其他框架好。可以定义外建等关联。但程序内写法比较简单,而且可以得到定义的所有数据。确实写起程序来更简单了!
    但优势的情况下同样有缺点,就是体系庞大,一般人弄不清,仅仅会使用。
    现在个人感觉h,在你特别了解所有体系的时候,非常熟悉整个架构的时候,他创造的代码比其他框架的代码简单许多。非常适合做大型项目。而不会感到太辛苦!但用ibatis虽然比较简单,入手快,并且容易掌握所有体系。但真正做大项目,灵活度有了,但很累。所有查询等都需要自己一个一个得自己写!
    所以学习最好先ibatis,之后h,最终目标就是熟透了h。那么关系比较复杂的大项目,那做起来比较容易了。
      

  7.   

    hibernate主要的作用是O-R映射,简化传统的Sql操作,要说它替代数据库设计还早得很数据库设计不仅仅是设计表,视图,触发器,主外键......表索引的选取,表空间的规划,备份还原策略,参数调优,SP,HADR.....一堆东西,这是专业DBA的技术范畴