我有以下数据库设计方案,我想知道是否可以使用PouchDB-CouchDB体系结构实现其复制。
我有一个混合移动应用程序,当前正在使用PouchDB作为本地持久层。每个应用程序实例(AppI)启动后,它将创建一个PouchDB文档,其中包含所有 AppI 持久性数据,例如用户名,头像等。仅此 AppI 负责管理其自己的文档实例- DocI 。
现在,在某个时候,特定的 AppI 可以决定与其他/其他 AppI 连接-在这种情况下,这些 AppIs 将交换他们的 DocIs 。一旦发生,每个 AppI 都将在其自己的 DocI 中拥有自己的数据,并为所有 AppIs DocIs 复制所有< / strong>决定与其共享数据。
每个 AppI 负责其自己的 DocI ,如果发生数据更改,它会在本地进行更改,然后将其 DocI 发送给所有同意与之共享数据的 AppIs 。到目前为止一切顺利。
我相信您现在可以看到不涉及后端复制-每个 AppI 都有责任持有并保留自己的 DocI ,并将收到所有<来自其他 AppIs 的strong> DocIs 。
现在是我的要求和相关问题: 我想将每个 DocI 从各自的 AppI 备份到后端数据库。在这种情况下,每个 DocI 必须复制到后端数据库文档。如果用户丢失了设备,请更换它,然后决定再次安装该应用,他们将要从 DocI 备份副本(即从后端数据库)中恢复数据。
我首先想到的是将CouchDB用作后端,作为最自然的PouchDB同步解决方案。但是,根据我所读的内容(请告诉我是否有错),我了解到,当PouchDB和CouchDB同步时,它们将同步所有内容,这意味着在每个 AppI 上,我将拥有所有< strong> DocIs 已被复制-甚至针对那些特定的 AppI 不与之交换数据的 AppIs 。
所以我的主要问题是-上述假设是否正确,即我不能使用PouchDB-CouchDB复制并确保仅将 DocIs 的特定子集复制到本地PouchDB / AppI ?
其他问题-如果假设是错误的,请问我如何用PouchDB / CouchDB对建模?