我不是在寻找一场神圣的战争,我正在考虑通过分布式架构,并希望输入如何在RDBMS与DocDBMS之间做出选择?
我们不能否认通过使用RDBMS(即MySQL,PostgreSQL,MS Sql Server等)可以获得的功能,它们已经开发了30多年,并且已经考虑并解决了许多问题。 / p>
我们还需要考虑NoSQL / DocDBMS运动(MongoDB,CouchDB等)有自己的优势,尤其是数据存储,关联和复制的方式。
仅在考虑 DATA 及其 STRUCTURE 时,何时会选择使用基于文档的数据库?何时使用关系数据库?
我不想讨论一个解决方案与另一个解决方案相对于某人最喜欢的语言或平台的优点。请保持讨论指向数据类型(即金融交易,博客,CMS页面,购物车等)及其结构(数据点之间的关系 - 即与其评论相关的博客文章)。
答案 0 :(得分:2)
RDBMS只是一个好的全能者,已经持续了30年并且没有任何萎靡的迹象。 像NoSQL等这样的东西对于某些用途来说是“特殊情况”。
当我有文档库或类似文件库时,我会使用文档数据库。其他一切都是RDBMS。
除了数据之外,如果你想销售这个系统,那么你可能必须针对像SQL Server或Oracle这样的RDBMS,以确保它在客户的基础设施上是可支持的
答案 1 :(得分:2)
如果您的数据是结构化的,那么RMDBS似乎是显而易见的选择,如果它是非结构化数据(例如文档),那么DocDBMS听起来最好。
RMDBS更像是一个“后端”工具,您可以使用它来提供正在开发的系统的后端。
当你说DocDBMS时,我认为你的意思是更多的文档管理系统(?) - 这更像是一个完整的解决方案,包括(文档)针对最终用户的数据管理功能。
对我而言,NoSQL只是RMDBS的一个变种 - 但需要更多的特殊需求。
关于如何选择:制定相关的NFR列表,并对选项及其相关性进行简单分析;我想到了可扩展性和性能,数据量和事务率如何? DR?当然还有重要的功能需求。您是否更担心所构建的执行质量或长期演变质量?