首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在类似于防火墙的nosql解决方案中创建多租户数据模型?

如何在类似于防火墙的nosql解决方案中创建多租户数据模型?
EN

Stack Overflow用户
提问于 2019-03-09 05:20:42
回答 1查看 2.2K关注 0票数 1

我说multi-tenant是什么意思?

  1. 用户可以属于一个组织。
  2. 在没有任何人邀请的情况下注册的用户将被放置在他们自己的组织(blah123)中作为其管理人员。
  3. 多个这样的用户是在同一个基于防火墙的应用程序中他们自己的单个组织的创建者。他们可以邀请其他人,也可以邀请那些被邀请加入创始人的组织。
  4. 为组织创建的任何数据或该组织的用户创建的任何数据都应该是从另一个组织的用户获取的
  5. 如果需要,我们应该能够配置属于同一组织的用户,以查看该组织的其他用户创建的任何数据。

问题

作为一个专家,你认为这是一个不可能的数据模型来设计云修复吗?一个能做到这一点的数据模型是什么样子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-09 10:00:16

作为一个专家,你认为这是一个不可能的数据模型设计的防火墙?

肯定不是不可能的,其实很简单。

一个能做到这一点的数据模型是什么样子?

用于用例的可能的数据库架构可能是:

代码语言:javascript
代码运行次数:0
运行
复制
Firestore-root
   |
   --- users (collection)
   |    |
   |    --- uid (document)
   |         |
   |         --- organizations: ["organizationId", "organizationId"] (array)
   |         |
   |         --- //Other user properties
   |
   --- organizations (collection)
         |
         --- organizationId (document)
                |
                --- users: ["uid", "uid"] (array)
                |
                --- //Other organization properties
                |
                --- organizationData (collection)
                      |
                      --- organizationDataId (document)
                             |
                             --- //Organization Data properties

用户可以属于一个组织。

如您所见,用户的id被添加到users数组中,这是每个organizationId文档中的一个属性。在数组中,可以添加属于该特定组织的所有用户的所有用户ids。

在没有任何人邀请的情况下注册的用户将被放置在他们自己的组织(blah123)中作为其管理人员。

一旦用户注册,就可以通过生成一个新的organizationId并在users数组中添加用户的内容来创建一个新的组织。

多个这样的用户是在同一个基于防火墙的应用程序中他们自己的单个组织的创建者。他们可以邀请其他人,也可以邀请那些被邀请加入创始人的组织。

上面回答了。

为该组织创建的任何数据或该组织的用户创建的任何数据都应从其他组织的用户中获取。

如您所见,我已经在organizationData文档下创建了一个名为organizationId的子集合,您可以在其中添加作为文档组织数据的内容。因为您已经拥有了这个组织的用户的uid,所以您可以使用Firestore安全规则只允许那些用户读取这些数据。

如果需要,我们应该能够配置属于同一组织的用户,以查看该组织的其他用户创建的任何数据。

在这种情况下,当用户加入一个组织时,您应该首先获得该组织的所有用户对象,然后查询数据库以获取这些用户所属的所有组织,并在所有这些组织中复制uid。

(就是这样:)

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55074267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档