0

我正在为我的大学开发一个讨论论坛。为此,我使用 CouchDB 作为数据库来操作数据。

为了最大化我的数据库的性能,我在设计我的数据库的结构时发现了困难。

我想讨论设计文档数据库的良好做法。

  1. 要么我们应该只将一个数据库设为 SQL 并设为“n”不。数据库中的文档。
  2. 或者我们可以对数据库进行更多的 no 以扁平化我的数据库结构。这也减少了更多的 no。待开发的文件。
4

2 回答 2

1

您需要问的问题很简单:“您想如何从数据库中获取数据?”

数据库设计取决于要进行的查询,而不是可存储的内容。

这对于像 Couch 这样的文档数据库尤其重要,因为虽然它确实具有灵活的模式,但它没有灵活的索引。我的意思是,由于数据的粒度,稍后会非常相似,当您需要提出一个并非旨在回答的问题时,回答该问题可能会非常昂贵。尽早设计视图和其他结构要便宜得多,因为数据库中的数据很少,而不是在拥有数千或数百万行之后。

RDBMS,因为它们往往具有更精细的数据粒度,因此对新查询等在以后的生活中往往更加灵活。文档数据库,不是那么多。

因此,预先考虑您的用例,围绕这些用例进行设计,并在早期进行设计,现在比以后轻松得多。

于 2014-02-08T20:54:04.987 回答
0

由于您没有提供太多信息,因此很难说出对数据建模的正确方法。通常,尽管您希望在一个数据库中保留尽可能多的数据,因为这允许您将其索引在一起(索引不能跨越多个数据库)。

此外,由于数据库中没有实施模式,您可以在每个数据库中创建不同类型的记录。例如,将用户信息和论坛条目放在同一个数据库中并没有错。

最后,您很可能希望将消息及其回复保存在不同的记录中。这是关于这个主题的一个古老但仍然相关的讨论:http ://www.cmlenz.net/archives/2007/10/couchdb-joins

干杯。

于 2014-02-08T20:30:43.023 回答