我正在开发一个saas产品,其中我们有两个共享数据库,供多个租户使用(10-20)。现在我们希望一个租户能够与不同服务器上的另一个租户共享其某些数据。例如,我们在server 1中有一个“book”表,其中保存了租户1的数据以及其他一些租户(如3、4、5)。在另一个服务器中,我们以类似的方式拥有tenant2的数据。现在,我如何将tenant1(server1)的book表的一些行共享给tenant2(server2)。如果这两个租户在同一个服务器上,我可以创建新的关系表来保存共享信息。现在这个问题有什么可能的解决办法?
我是这种新的多租户结构,我甚至不知道什么是一个好的关键字搜索在谷歌学习这些东西。
我希望找到google和slack是如何允许多租户使用xyz.slack.com这样的域扩展的。有什么建议可以让我得到更多的信息吗?
最佳答案
我不确定应用程序的体系结构,比如当租户1和租户2请求时,如何解析书籍的connectionstring。
但是,您可以做的是有一个单独的表,该表具有以下结构
reference id : tenant ids : access rights : isvalid
book1 : tenant1, tenant2 : view_sharedbooks : true
(或)
reference id : tenantid : userid : access rights : isvalid
book1 : tenant1 : u1 : view_sharedbooks : true
book1 : tenant2 : u2 : view_sharedbooks : true
因此,当我以租户1的用户身份登录时,我将能够查找我有权访问的相应书籍及其租户的书籍。当我知道租户的书籍时,我将能够查找以获取其相应的连接字符串。使用它,我将能够调用2个异步调用来获取2个数据库中的db记录,并将它们合并到服务层并将其传递到表示层。
这假设您已经处理了必要的基础设施,可以处理连接/租户,以及用户和对图书实体的特权等等。
哦。
关于database - 如何在SaaS产品中的不同服务器的多个租户之间共享数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35547995/