所以对于我的文档,我有一个定义它们的类型属性。几乎对于所有这些“类型”,我都必须有一个“按类型获取”电话..
现在的问题是这些设计中的哪一个更有效?
拥有一个视图,该视图的键的“类型”映射所有文档
对每个“类型”都有一个仅映射这些类型的视图,我可以查询视图以获取视图中的所有文档?
所以对于我的文档,我有一个定义它们的类型属性。几乎对于所有这些“类型”,我都必须有一个“按类型获取”电话..
现在的问题是这些设计中的哪一个更有效?
拥有一个视图,该视图的键的“类型”映射所有文档
对每个“类型”都有一个仅映射这些类型的视图,我可以查询视图以获取视图中的所有文档?
我认为后者是最好的。为每种类型查询/过滤该特定类型的视图。这使您可以从 Futon 视图下拉列表中非常快速地显示特定类型的文档列表。几乎就像你在看“桌子”一样。但不是真的;-)
这取决于您的数据库中有多少“类型”。如果很少 - 使用“按类型查看”方法,你会很好并且拥有更好的 API URL。
但是,当您在单个数据库中拥有大约 70 种类型的文档(我的情况)时,很难理解这种方法不再适用,您需要一个视图来按类型过滤文档 - 您永远不会忘记为新文档类型添加您的特殊视图,您不需要清理过时的视图。作为奖励功能,拥有单一视图允许您通过单个请求检索多种类型的文档,并且只有一个复制任务可以在数据库之间同步多种类型的文档。对于每个或大部分文档(如作者、updated_at 等)通用的所有其他字段也是如此。
最终决定权在您手中,但最好采取可以让您免于额外工作的方式,并且一个额外的查询参数不会带来更高的放松成本。