【发布时间】:2015-08-18 23:44:06
【问题描述】:
我正在设计一个用于任务管理的移动应用(待办事项列表和许多额外的好东西),它可以离线使用并在重新连接时同步。我对 Couch 和 Pouch DB 印象深刻,但仍然不确定数据库和角色的最佳结构。我的情况是,一个用户可以有许多任务,并且可以直接或通过将任务分配给一个组然后与特定用户共享该组来将任务共享给许多其他用户(只读)。
阅读以下问题后: CouchDB replication strategy with dynamic groups of users 我想我可能不允许直接共享任务,只允许通过群组共享。然后每个组实际上都是 Couch 中的一个角色,然后我可以管理对它的授权。我可以从我的网络应用程序编写一个 API,以便移动用户可以获取共享给他们的组列表,然后设置从每个基于 DB 的组到他们本地 Pouch DB 的单向复制。每个用户还可以通过从 Pouch 到 Couch 的双向同步对他们自己的任务的数据库进行读写访问。将从他们自己的 Couch 数据库到任务所属的每个基于角色的数据库进行过滤复制。
我的主要问题是:
- 这是一个有效的结构,还是我的逻辑中的缺陷会使这变得困难?
- 当用户从组/角色中删除时,最好的处理方法是什么,以及由于组不再与他们共享(他们不再拥有该组),如何删除本地 Pouch DB 上任何以前复制的任务角色)?
- 用户可能会删除一个组,这意味着需要删除整个基于角色的数据库 - 这有什么影响吗?
【问题讨论】: