我研究CouchDB和TouchDB已经有一段时间了,并认真考虑它们是否适合我心目中的移动应用程序。我有几个问题,如果有人能给我指出正确的方向,我将不胜感激。场景是,我有两个运行在TouchDB上的移动客户端。我希望Mobile Client A能够将特定文档复制到Mobile Client B。然后,我希望Mobile Client B能够进行更改,并将这些更改与Mobile Client A同步。从体系结构的角度来看,我认为我需要一个两个客户端都可以拉/推的集中式couchdb数据库。我遇到的问题是如何确保客户端B只能复制他授权复制的文档。我知道我可以使用复制筛选器来限制复制的文档,但我如何在Mobile Client B上强制执行它?另外,对于上述场景,理想的架构是什么?任何帮助都将不胜感激。谢谢!
发布于 2013-02-01 06:01:30
我在EC2 (集中式数据库)中使用TouchDB和BigCouch进行了类似的设置。这可能是一个相当冒险的工作,让推拉工作。=)
我认为您在使用复制筛选器的拉动方面是正确的。如果您使用复制筛选器限制客户端B的拉取,您的生活很可能会更轻松,因为客户端B可以修改其本地TouchDB上的任何内容,并且不会造成任何伤害。
换句话说,不要复制您不希望客户端B修改的文档。
为此,您必须在文档中引入一个字段来指定访问级别-或者一些数组,其中可能包含客户机B的用户id。这样,他只能看到他有权看到的内容。
在我忘记之前,有两点要注意: a) Android上的TouchDB目前还很粗糙。他们正在努力让它变得更好,但它落后于iOS版本。b)我强烈建议使用Erlang编写您的复制过滤器。这样做我的速度提高了50%。
https://stackoverflow.com/questions/14633879
复制相似问题