多个用户 PouchDB 的 PouchDB 管理员视图

PouchDB Admin view over multiple User PouchDBs

我们正在处理一个与此案例非常相似的案例 (),但不确定哪种方法更好。

首先勾勒出场景,我们有多个 'ordinary users'(从现在起我将简称为 'users')和一小部分 'super users'(我将调用 'admins' 以保持词汇量简单。

用户可以创建文档和编辑文档,这些文档是唯一分配给他们的。此功能应该在线和离线都可用。为实现这一点,我们只需为每个用户使用一个远程独立的 CouchDB,并同步到设备上的 PouchDB。

现在,我们还有管理员,可以查看和编辑所有用户的所有文档。他们还可以将文档添加到用户的存储桶中。实现此功能是问题所在。

现在我们确定了两种可能的方法,但不确定哪一种是可行的方法。

我们的第一个解决方案是为这些管理员也提供一个 CouchDB,并在所有用户的 CouchDB 和管理员他的 CouchDB 之间设置过滤双向复制。然后,管理员的 CouchDB 将与本地 PouchDB 同步。

第二种解决方案是顶部 link 中概述的解决方案,即将所有用户的 CouchDB 直接同步到管理员设备上的 PouchDB,并在另一个中设置过滤复制方向。我们可以根据用户角色确定要同步哪些 CouchDB。

第二个解决方案似乎更简单且不那么脆弱(CouchDB 中的数据重复更少,CouchDB 中的复制设置更少),但我们不太确定打开大量 Couch < -> 袋复制同时进行。

有没有人有处理过这种情况的经验?关于什么是更好的解决方案的任何反馈?还是我们错过了另一个?欢迎大家发表评论!

您是否考虑过数据仅保留在用户数据库中并且管理员创建了一个新的本地数据库来复制用户数据库?

更详细 我会建议管理界面创建本地数据库,例如使用 "userdb-{$userid}" 这样的命名模式。

然后您可以从用户数据库复制到管理员本地副本。

所有更改都将同步到用户数据库,您不需要任何过滤复制,也不要冒险混合不同用户的数据。

根据您对确切要求的有限了解,这可能是一个更好、更简单的解决方案。