阅读背景:

mongodb初体验

来源:互联网 

mongodb初体验

开年后,须要开发一款新的工作流产品,重要用于汽车范畴管理进程的管理工作,由于和去年的老产品业务相似,也就采取同一个平台。
老的平台,其中的静态数据和业务数据都是基于hibernate和mysql,ORM关系比拟庞杂,所以老的平台上面的相干业务代码就变的异常庞杂。由于采取的是RIA方法,全体采取的是ajax来要求json数据来完成业务进程,所以数据库这一块的校验等就比拟庞杂。同时,由于mysql的表构造在处置关系映照的时候,多采取中间表的方法进行关联,所以在处置细部表单数据报表的时候,就比拟苦楚,提起一个数据,就须要关联很多表来处置,所以有很多HQL语句写的很苦楚。
因而决议引入mongodb,由于mongodb是文件型数据库,最像关系型数据库的NOSQL数据库,也是最近几年在互联网范畴运用的非常普遍的NOSQL数据库。由于体系本身的特色,对事务要求不是很高,所以选择mongodb也是基于比拟郑重的斟酌。
由于体系框架应用的是spring,所以mongodb就采取spring-data-mongodb作为中间价,用法和hibernate相似。为了郑重起见,我们对构造化的数据,比如部门、人员、权限等数据仍然放在mysql中,而对业务数据,比如元工作流,工作流,节点,表单,字段等放在mongodb中。
在设计的时候,采取单项的DBRef关联,对子文档,同时保留父文档和祖宗文档的id,这样的利益在后期便可以体现出来,我们后面细讲。
框架很快的就起来了,由于基本模块已经是很完美了,重要处置业务数据库这一块,mongodb的优势一下子就体现出来了,由于mongodb是文档型的,所以字段没有束缚,可以和JAVA POJO无缝关联,在入库和更新的进程中,只须要对字符的格局进行验证和过滤便可,对长度等无需斟酌,所以代码就简略了很多。对象之间分离进行处置,关联关系相应的处置也简略了很多,代码量减少了最少三分之二,这样保护量也响应的会减少很多。
刚才讲到子文档保留父文档和祖父文档ID的缘由,在于我们在保护数据的时候,可以通过父ID活着祖父ID一下子直接查出来进行保护,这样相当于将一个有层级的数据进行平面化,查询的效力就非常高,特别是在做更新数据的时候,就更加显著。另外,对报表数据,也一样晋升了查询效力。
目前我们的运用还处于比拟浅层次的基本运用,不过已体现出了NOSQL数据库的天生优势。这一点,让我们的产品的开发效力得到了极大的晋升,保护本钱得到了极大的下降。
开年后,须要开发一款新的工作流产品,重要用于汽车范畴管理进程的管理工作,由




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: