您将如何定义一个系统的体系结构(主要是数据库结构),该系统需要在租户级别和组织级别都有可用的数据。这方面的一个示例如下:业务是系统中的客户端(例如OAuth2客户端)。业务可以有多个子公司。每个附属公司都是系统中的租户。业务用户希望他们可以使用此功能:
我在这类系统中的第一次尝试是通过区分器列在表级别上描述租赁,并通过为租户列设置一个空值来建模“系统范围”信息。需要关注的是,这将影响应用程序的开发,因为“租户”信息需要在应用程序的所有级别都被知道、传递和强制执行,直到数据访问层,而不是每个租户可以在连接级别以更优雅的方式处理租赁的“模式”或“数据库”方法。在这么多地方,我还能采取什么其他的方法来允许这种功能而不让代码租户意识到呢?
发布于 2020-11-08 07:39:33
在我们的应用程序中,我们需要类似的东西,我们所做的是创建一个“组织单元”表(在我们的例子中就是名称),然后每个记录可能链接到0或更多的OU,如果它链接到至少一个,那么它只对启用到该OU的用户是可见的,否则对每个用户都是可见的。
此方法意味着,每当查询记录类型时,也会将其与OU链接表连接起来,在该条件下,OU ID必须为null或等于当前用户可见的OU之一。
https://softwareengineering.stackexchange.com/questions/418583
复制相似问题