为什么我应该使用基于文档的数据库(如CouchDB)而不是关系数据库。
是否有任何典型的应用程序或 Realm 比基于关系数据库更适合基于文档的数据库?
最佳答案
也许你不应该:-)
第二个最明显的答案是,如果您的数据不是关系数据,则应使用它。这通常表现为没有简单的方法将您的数据描述为一组列。一个很好的例子是一个数据库,您可以在其中实际存储纸质文档,例如通过扫描办公室邮件。数据是扫描的PDF,并且您具有一些始终存在的元数据(在文档中扫描,按文档类型扫描)以及有时可能存在的许多可能的元数据字段(客户编号,供应商编号,订单编号,保留在文件上, OCRed全文,等等)。通常,您不预先知道在 future 两年内将添加哪些元数据字段。
诸如CouchDB之类的事情对于这种数据而言要比关系数据库好得多。
我个人也很喜欢这样一个事实,除了HTTP客户端外,我不需要CouchDB的任何客户端库,而HTTP客户端如今已包含在几乎所有编程语言中。
可能是最不明显的答案:如果您不觉得使用RDBMS感到痛苦,请继续使用它。如果您总是需要解决RDBMS才能完成工作,那么面向文档的数据库可能值得一看。
有关更详细的列表,请检查this posting of Richard Jones。