为每个 CouchDB 用户提供一个单独的数据库是一个好的做法吗?

2024-01-31

我对用户及其文档的结构有一些概念性问题。

为 CouchDB 中的每个用户提供自己的保存文档的数据库是一个好习惯吗?

我读到,couchDB 可以处理数千个数据库,并且每个用户拥有自己的数据库并不罕见。

Reason:

提出这个问题的原因是我正在尝试创建一个系统,其中登录用户只能查看自己的文档而无法查看任何其他用户的文档。

有什么建议。

先感谢您。


为每个用户创建 CouchDB 存储桶 (DB) 是相当常见的场景。虽然有一些缺点:

  • 您必须在每个用户存储桶中保持 ddoc 同步,因此跨多个存储桶部署 ddoc 更改可能会成为一场真正的冒险。
  • 如果文档以某种方式在用户之间共享,则每个存储桶中都会出现文档和视图索引的重复内容。
  • 你必须阻止_info请求以避免用户列表泄漏(或者您必须使用哈希来命名存储桶)。
  • 无论如何,您都需要在 Couch 前面使用一些代理来在用户注册时创建和准备新的存储桶。
  • 当 Couch 收到大量请求时,您可以更好地保护它免于耗尽容量 - 它还需要代理。

每个文档读取 ACL 可以使用以下方式实现_list功能,但这种方法有一些缺点,并且它还需要在 CouchDB 前面有一个代理,至少是一个 Web 服务器。看CouchDb 使用列表读取身份验证 https://stackoverflow.com/questions/3531561/couchdb-read-authentication-using-lists/28521396#28521396更多细节。

你也可以尝试玩沙发套 https://github.com/ermouth/covercouch它实现了完整的每文档读取 ACL,保持原始 CouchDB API 不变,但它处于非常早期的测试阶段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为每个 CouchDB 用户提供一个单独的数据库是一个好的做法吗? 的相关文章

随机推荐