首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许租户特定和租户无关的数据的多租户系统架构

允许租户特定和租户无关的数据的多租户系统架构
EN

Software Engineering用户
提问于 2020-11-02 10:21:56
回答 1查看 323关注 0票数 0

您将如何定义一个系统的体系结构(主要是数据库结构),该系统需要在租户级别和组织级别都有可用的数据。这方面的一个示例如下:业务是系统中的客户端(例如OAuth2客户端)。业务可以有多个子公司。每个附属公司都是系统中的租户。业务用户希望他们可以使用此功能:

  • 如果数据仅为其子公司(如出售的项目、雇员、发票等)创建,则附属用户只能访问自己的数据。
  • 附属用户应能够获得公司范围内的数据(例如供应商和客户名单、国家/城市词典和所有附属公司可能共有的任何其他字典)。所有用户都应该可以使用这些数据进行读/写/删除。
  • 应允许数据在子公司之间移动(例如,员工被重新分配到另一家子公司时)。

我在这类系统中的第一次尝试是通过区分器列在表级别上描述租赁,并通过为租户列设置一个空值来建模“系统范围”信息。需要关注的是,这将影响应用程序的开发,因为“租户”信息需要在应用程序的所有级别都被知道、传递和强制执行,直到数据访问层,而不是每个租户可以在连接级别以更优雅的方式处理租赁的“模式”或“数据库”方法。在这么多地方,我还能采取什么其他的方法来允许这种功能而不让代码租户意识到呢?

EN

回答 1

Software Engineering用户

发布于 2020-11-08 07:39:33

在我们的应用程序中,我们需要类似的东西,我们所做的是创建一个“组织单元”表(在我们的例子中就是名称),然后每个记录可能链接到0或更多的OU,如果它链接到至少一个,那么它只对启用到该OU的用户是可见的,否则对每个用户都是可见的。

此方法意味着,每当查询记录类型时,也会将其与OU链接表连接起来,在该条件下,OU ID必须为null或等于当前用户可见的OU之一。

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

https://softwareengineering.stackexchange.com/questions/418583

复制
相关文章

相似问题

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