3

我来自 MySQL 背景,我对面向文档的数据库感兴趣,特别是 CouchDB。我感兴趣的一件事是数据完整性。面向文档的数据库如何处理这个问题?例如,在 RDBMS 中,有一些方法可以防止记录重复,或者保证如果你有一个信息,你就会有另一个,或者根本没有。

我想更广泛地说,我的问题是,与 DODBes 用于解决的问题相比,RDBMS 用于解决哪些类型的问题?我查看了其他一些 stackoverflow 问题以寻求解释,但没有找到任何好的问题。

此外,使用我的数据库,我会做很多报告,包括求和和平均值以及历史趋势。这适合面向文档的数据库吗?

4

1 回答 1

2

大多数文档数据库仅支持非常有限的完整性或不支持完整性检查。他们依靠应用程序来确保数据正确。我可以告诉你它在 CouchDB 中的情况。

到第二部分。我认为 RDBMS 在报告和分析数据方面做得很好。您可以使用连接、聚合、函数等对数据运行复杂查询,这一事实使 RDBMS 成为一个非常强大的报告工具。文档数据库非常适合存储“实时”应用程序数据。将检索对象图存储到文档数据库中非常容易。无模式设计可以轻松扩展模型以实现新的应用程序功能。但是,这仅在您可以将应用程序数据拆分为漂亮的文档时才有效。否则你会失去很多优雅。

如果您想主要做报告,我更喜欢 RDBMS。何时存储大量平面、简单的记录很容易对其进行报告。工具等非常适合报告。但是,当想要对复杂的结构化数据进行报告时,您可能仍然最好使用其他数据库设计而不是 RDBMS。

但是,这并不意味着您需要将自己限制在 RDBMS 中。您可以将这两种技术结合起来。想象一个博客软件。您将“实时”应用程序数据(如博客文章和评论)存储到文档数据库中。点击和登录统计等报告数据存储在 RDBMS 中。另请参阅Rob Conerys 的帖子

于 2010-06-14T17:33:55.107 回答