我正在构建一个新的移动应用程序,并打算使用Apache CouchDB和Couchbase Lite来实现离线/在线数据同步模型。基本的CRUD已完成并正常工作。
我的问题是有多少数据被同步。例:
集中式数据库具有3个用户的数据。让我们说每个用户创建在服务器中同步的100Mb数据。
由每个用户创建的数据对于其他用户是无法访问的,并且从移动客户端创建的查询从不包括其他用户的数据。
如果用户只查询并创建自己的数据,他会在他的设备中拥有300Mb的数据还是只有他自己的100Mb?
我假设您在CouchDB服务器中有一个数据库,其中3个用户正在复制其本地数据库。在这种情况下:
CouchDB可以为您提供帮助,因为它支持过滤复制。在这种情况下,您可以使用参数化过滤器功能,该功能允许您将自己的数据复制到每个用户的设备。
我不确定Couchbase Lite是否支持过滤复制,因为它专注于Couchbase Sync Gateway。
我可以确认Cloudant Sync支持基于过滤器函数和芒果查询的过滤复制。
如果数据库增长,过滤器功能可能会导致性能问题。芒果查询选择器是数据库过滤的更加性能的解决方案。