我每年开发3到4个Spring应用程序,目前使用Hibernate和MySQL。本文在Stackoverflow中指出,relational databases are not the best fit适用于典型的面向对象的been应用程序。
如果您的DB是3NF,并且不进行任何连接(您只是选择了一堆表,并将所有的对象放在一起,AKA是大多数人在web应用程序中所做的),MongoDB可能会给您带来麻烦。
造成这种情况的原因有多种。一个是生产力,因为对象被映射到关系模式(“联接”等)。如果使用MongoDB或CouchDB的专业知识水平与MySQL相同,那么它们会提高开发效率吗?
发布于 2011-09-23 10:03:23
我认为这真的取决于网络应用程序。非关系数据库(NoSQL)在
NoSQL肯定可以使更快地开始工作变得更容易,因为您可以随意地投入一些东西,但是当事情变得更加复杂时,有时您需要一个更强制的组织。在使用Mongo时,外键是我真正怀念的东西,只要能够(使用ORM)从一个对象跳到一个相关的对象或其中的一组就好了。(是的,在许多NoSQL dbs中,您可以存储文档,但在某些情况下,您需要使用单独的表来处理某些内容。)
我强烈推荐NoSQL作为一个小册子风格的网站,在那里客户端只是输入文本字段,或者twitter风格的网站,在那里你主要是存储一种类型的数据,很少有属性。但是,如果您要创建一个带有修订和工作流之类的CMS,您将需要在SQL中具有显式关系的能力。
这让我想到了我的答案:使用合适的工具来完成这项工作。经过培训的开发人员将能够使用SQL使某些站点变得越来越快,而其他站点使用非关系数据库的速度会越来越快。
但是尝试一下MongoDB或CouchDB,这样你就会对什么时候使用什么有更好的直觉。(我们在我的工作中同时使用(不是同时使用!)视项目而定)
https://stackoverflow.com/questions/7527184
复制相似问题