mongodb schema design

数据模型的创建,相对于传统关系型数据库而言,mongodb没有严格的设计模式,这是因为模式设计或我们称之为数据建模的成败往往是取决于实际系统的需求,很多时候需求是不同的,所以反而使得数据模型的创建各有所不同,很难说存在一套标准的数据建模方法。

mongodb schema design 时需要考虑:

问题1、数据模型最小单位是什么?
   关系型数据库:数据存放在表中,以字段和行的形式存储。
   mongoDB: 数据模型的最小单位是document对象。
问题2、你将如何查询和更新数据?
   关系型数据库:
           查询数据:ad hoc和 联合查询的方式。
           数据更新:使用SQL以及事务管理的方式来实现。
   mongoDB:
           查询数据:支持ad hoc查询方式,但是不支持联合查询方式。
           数据更新:不支持事务管理方式。但是它支持基于一个任意复杂的document对象的
                     所有更新操作,可以这么理解:mongodb如果只是针对一个文档对象是可
                     以提供事务管理操作的。
   综合来说:nosql数据模型的创建必须认真考虑到如何为文档型数据对象的查询和更新提供最好的支持。
问题3:你所创建的系统的数据访问特点是什么?
   数据的读/写概率是什么?系统需要的数据查询方式是什么?更新方式是什么?希望支持什么类型的并发处理?数据是否需要结构化支持?

注:对于需要针对多个文档对象提供事务管理支持的场合,mongodb提供:Two Phase Commits 的方式,具体参考:http://cookbook.mongodb.org/patterns/perform-two-phase-commits/

猜你喜欢

转载自weiweirenhong.iteye.com/blog/1423932