gpt4 book ai didi

couchdb - 按用户角色划分的 Couchdb/Couchdb 复制策略

转载 作者:行者123 更新时间:2023-12-02 03:22:54 26 4
gpt4 key购买 nike

我正在设计一个用于任务管理的移动应用程序(待办事项列表以及许多额外的好东西),可以离线使用并在重新连接时同步。 Couch 和 Pouch DB 给我留下了深刻的印象,但我仍然不确定数据库和角色的最佳结构。我的情况是,一个用户可以有很多任务,并且可以直接或通过将任务分配给一个组然后与特定用户共享该组来将任务共享给许多其他用户(只读)。

阅读完以下问题后: CouchDB replication strategy with dynamic groups of users我想我可能不允许直接共享任务并且只允许通过组共享。然后每个组实际上是 Couch 中的一个角色,然后我可以管理对它的授权。我可以从我的网络应用程序编写一个 API,以便移动用户可以获得共享给他们的组列表,然后设置从每个基于数据库的组到他们本地 Pouch DB 的单向复制。每个用户还可以通过从 Pouch 到 Couch 的两种同步方式对自己任务的数据库进行读写访问。将从他们自己的 Couch 数据库到任务所属的每个基于角色的数据库进行过滤复制。

我的主要问题是:

  1. 这是一个有效的结构,还是我的逻辑中存在缺陷,这会使这变得困难?
  2. 当用户从组/角色中删除时,最好的处理方式是什么?既然组不再与他们共享(他们不再拥有角色)?
  3. 用户可能会删除一个组,这意味着需要删除整个基于角色的数据库 - 这有什么影响吗?

最佳答案

好问题,保罗!这似乎最近不断出现。 :)

Is this a valid structure or are there flaws in my logic that would make this difficult?

我是这么认为的。我发布了一个architecture diagram作为对类似的以移动为中心(在这种情况下为 Cordova + PouchDB)工作流的回答。

What would be the best way to handle when a user was removed from a group/role and how to delete any previously replicated tasks on their local Pouch DB now that the Group is no longer shared to them (they no longer have that role)?

可能最好的方法是在用户数据库上使用 View 来查找与共享/组相关的所有文档,然后使用后台进程(或类似进程)删除这些文档(以节省空间;如果您需要到)。

您可以使用批量文档系统 in PouchDB or CouchDB在文档中设置了 "_deleted": true——这应该会简化删除过程。

A user may delete a group which will mean the entire role based DB will need to be deleted - are the any implications of this?

请务必同时删除复制任务,以避免在数据库消失后复制失败。否则,你应该没问题(据我所知)。

希望对您有所帮助!

关于couchdb - 按用户角色划分的 Couchdb/Couchdb 复制策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32084322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com