2016-09-19 43 views
0

我正在使用PouchDB + CouchDB在当前正在开发的角度应用程序中存储和同步数据。数据是按用户存储的,包含诸如用户权限/设置,最近查看的内容和购物车项目等内容。用户数据的PouchDB/CouchDB使用/架构

目前,我有一个CouchDB数据库,其中包含每个用户的文档。尽管此结构适用于快速检索用户特定的数据,但它在逻辑上存在缺陷,因为所有用户文档都会同步到访问该应用程序的任何设备。换句话说,我最终只需要当前登录的用户数据进行同步。

所以,我的问题是,我应该为每个用户创建一个Couch数据库,而不是为每个用户使用一个带有doc的单个数据库?或者有更好的方法去解决这个问题吗?

+0

您是否尝试过设置拉式过滤器? –

+0

@MichaelPickett不,我没有,你能指点我一个例子或文档?是否使用设计文档查询完成了拉式过滤器? – Jbird

+2

继承人的东西,我发现可能有助于https://pouchdb.com/2015/04/05/filtered-replication.html –

回答

0

如果你看看pouchdb-authentication插件,你会发现你可以在_user数据库中存储用户的元数据。这可能是你需要的一切。

+0

这可能适用于最小用户元,但在处理用户保存的购物车,位置数据,交易历史记录,应用设置等情况下,如果不是多个数据库,则需要多个文档。我最终为每个用户使用单个文档,并使用过滤器来选择性地仅将登录的用户数据同步到他们的设备。 – Jbird

+0

“每个用户的数据库”是CouchDB的标准做法,因此将“购物车”数据等内容存储在用户数据库中是有意义的,因为这不是“用户”元数据。这只是应该存储在用户数据库中的数据。 “_user”数据库旨在提供用于验证用户身份和存储“元数据”(如他们的姓名,地址等)的内置功能。它不打算用于存储用户数据。 –