Routing 如何使用CouchDB作为主数据库组织路由?
你能告诉我,如何使用CouchDB作为主数据库来组织路由吗 我有大约10个数据库,具有不同的内容类型,例如Routing 如何使用CouchDB作为主数据库组织路由?,routing,couchdb,ibm-cloud,cloudant,Routing,Couchdb,Ibm Cloud,Cloudant,你能告诉我,如何使用CouchDB作为主数据库来组织路由吗 我有大约10个数据库,具有不同的内容类型,例如公司,工作,主题和博客 数据库之间的架构或多或少相同。所有文档包括以下字段: { url: "actual-path", redirects: [ "old-path", "another-old-path" ] } 来自客户机的每个请求,我都通过请求的url查询每个数据库。一旦我得到一份文件,我就要做200或301,否则就是404 这种方法的问题是,每次加载页
公司
,工作
,主题
和博客
数据库之间的架构或多或少相同。所有文档包括以下字段:
{
url: "actual-path",
redirects: [
"old-path",
"another-old-path"
]
}
来自客户机的每个请求,我都通过请求的url查询每个数据库。一旦我得到一份文件,我就要做200或301,否则就是404
这种方法的问题是,每次加载页面时,我至少需要向数据库发出10个请求。有了这些服务,我需要支付一个门槛——这是非常昂贵的
有没有更好的组织方式?我有两种想法:
为什么不将所有内容放在同一个数据库中,并使用某个键(例如:type、collection、table)将它们分开呢?这将把查询减少到1,因为我们对不同的数据库有不同的权限。您的任一解决方案都可以工作。我喜欢在Redis中保留这些重定向的快速查找版本的建议,特别是因为您在每个请求中都使用这些信息。您还可以让一个进程订阅ChangesAPI,以保持Redis中的信息更新。为什么不将所有内容放在同一个数据库中,并使用特定的键(例如:类型、集合、表)将它们分开?这将把查询减少到1,因为我们对不同的数据库有不同的权限。您的任一解决方案都可以工作。我喜欢在Redis中保留这些重定向的快速查找版本的建议,特别是因为您在每个请求中都使用这些信息。您还可以让一个进程订阅ChangesAPI,以保持Redis中的信息更新。