CouchDB 的数据库和设计文档在数据类型方面的作用

The role of CouchDB's databases and design documents with regards to data types

假设我有一个名为 "traveler" 的应用程序,我想存储人物和地点。这两个文档具有截然不同的属性和不同的视图。

我看到了两种存储此数据的合乎逻辑的方法:

  1. 在单独的 CouchDB 数据库中,每个数据库都有一个名为 traveler 单个 设计文档,其中包含对该特定数据类型的视图。例如:/people/_design/traveler/_view/by-name.
  2. 在名为 traveler 的单个 CouchDB 数据库中,每种数据类型有一个设计文档,并使用类似 "type" 属性(或其他 ducktyping 方式)的东西来过滤意见。例如:/traveler/_design/people/_view/by-name.

惯用的方法是什么?

根据您的需要,这两种方法都是完全有效的。

要考虑的主要事情是您是否希望在视图中组合这些文档。通过使用单独的数据库,您将排除这种可能性,因为视图不能跨越多个数据库。当然,您可以在应用层执行任何类型的连接,所以如果您根本不想在数据库中执行此操作,那对您来说没有任何区别。

总的来说,我发现坚持方法 #2 更容易。