【发布时间】:2015-05-14 17:33:53
【问题描述】:
我有一个管理用户的 PouchDB 应用。
用户有一个本地 PouchDB 实例,该实例使用单个 CouchDB 数据库进行复制。很简单。
这就是事情变得有点复杂的地方。我在我的设计中引入了“组”的概念。组将是不同的 CouchDB 数据库,但在本地,它们应该是用户数据库的一部分。
我在 pouchDB 网站上阅读了一些关于 “fancy replication” 的内容,这似乎是我所追求的解决方案。
现在,我的问题是,我该怎么做?更具体地说,如何从多个远程数据库复制到单个本地数据库?一些代码示例将是超级的。
从下面的图表中,您会注意到我需要根据用户所在的组动态添加数据库。我的设计也将受到批评。
流程应该是这样的:
- 从他/她的数据库中检索所有用户文档到
localUserDB -
var groupDB = new PouchDB('remote-group-url');groupDB.replicate.to(localUserDB);
(多个 pouchdb 实例 0_0 是否存在性能问题?) - 在本地,当用户对特定组进行更改时,我们会确定相应的数据库并通过执行以下操作进行复制:
localUserDB.replicate.to(groupDB)(我需要过滤复制吗?)
【问题讨论】:
-
你搞清楚角色系统了吗?
-
是的,基本上在
_users数据库中,我最终为每个数据库使用了一个角色。我在每个用户文档的用户roles数组中定义了用户可以访问的数据库名称。如果您有任何更具体的问题,请告诉我,我很乐意为您提供帮助,因为我为此花费了大量时间。 -
您是如何设置用户数据库之间的同步的?
-
如果您正在为此苦苦挣扎,请考虑使用与远程数据库一样多的 本地 数据库。只要您不是一次实时复制所有这些(HTTP 连接太多),就应该没问题。见sync with multiple databases。