0

我一直在研究 CouchDB 和 TouchDB 一段时间,并认真考虑它们是否适合我心目中的移动应用程序。我有几个问题,如果有人能指出我正确的方向,我将不胜感激。场景是我有 2 个在 TouchDB 上运行的移动客户端。我希望移动客户端 A 能够将特定文档复制到移动客户端 B。然后我希望移动客户端 B 能够进行更改并将这些更改同步回移动客户端 A。从架构的角度来看,我认为我需要一个集中的 couchdb 数据库,两个客户端都可以拉/推。我遇到的问题是如何确保客户 B 只能复制他被授权复制的文档。我知道我可以使用复制过滤器来限制复制的文档,但是如何在移动客户端 B 上强制执行它?此外,上述场景的理想架构是什么?任何帮助将不胜感激。谢谢!

4

1 回答 1

0

我在 EC2(集中式数据库)中使用 TouchDB 和 BigCouch 进​​行了类似的设置。让推动和拉动正常工作可能是一次冒险。=)

我认为您在使用带有拉取功能的复制过滤器方面走在了正确的轨道上。如果您使用复制过滤器限制客户端 B 的拉取,您的生活很可能会更轻松,因为客户端 B 可以修改其本地 TouchDB 上的任何内容,并且不会造成任何伤害。

换句话说,不要复制您不希望客户端 B 修改的文档。

为此,您必须在文档中引入一个指定访问级别的字段 - 或者某个数组可能包含客户端 B 的用户 ID。这样他只能看到他有权看到的东西。

在我忘记之前有两个注意事项:a)Android 上的 TouchDB 目前还很粗略。他们正在努力让它变得更好,但它落后于 iOS 版本。b) 我强烈建议考虑用 Erlang 编写你的复制过滤器。这样做我的速度提高了 50%。

于 2013-01-31T22:01:29.650 回答