【问题标题】:PouchDB Admin view over multiple User PouchDBs多个用户 PouchDB 的 PouchDB 管理员视图
【发布时间】:2016-06-01 06:32:20
【问题描述】:

我们正在处理一个与此 (PouchDB: Multiple remote databases, single local database (fancy replication)) 非常相似的案例,但不确定哪种方法更好。

首先勾勒出这个场景,我们有多个“普通用户”(从现在起我将简称为“用户”)和一小部分“超级用户”(我将其称为“管理员”)保持词汇简单)。

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

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

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

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

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

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

有没有人处理过这样的案例?关于什么是更好的解决方案的任何反馈?还是我们错过了另一个?欢迎所有的cmets!

【问题讨论】:

    标签: couchdb pouchdb


    【解决方案1】:

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

    更详细地说,我建议管理界面创建本地数据库,例如使用“userdb-{$userid}”之类的命名模式。

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

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

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

    【讨论】:

    • 感谢您的回答!这或多或少正是我们最终采用的方法,并且以某种方式对其进行了验证真是太好了。否决这个答案的人能否解释他投反对票的原因?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多