【发布时间】:2019-04-11 21:49:18
【问题描述】:
我有一个 django 应用程序,它有客户端和链接到这些客户端的多个用户,我想将系统迁移到分层多租户架构。
分层部分
客户端可以递归地包含其他客户端。例如,Client A 包括 Client B 和 Client C。如果用户Client A 登录系统,用户将看到Client B 和Client C 的数据。如果Client B的用户登录系统,用户将只能看到Client B的数据。
多租户部分
我想将所有客户的数据存储在单独的架构中。但是有些数据与客户无关,所以我想将这些数据存储在“公共”模式中。
在研究Building Multi Tenant Applications with Django的时候,看到了这个部分:
def set_tenant_schema_for_request(request):
schema = tenant_schema_from_request(request)
with connection.cursor() as cursor:
cursor.execute(f"SET search_path to {schema}")
但是,要应用我上面提到的分层示例,我必须同时访问多个模式。我可以这样做还是有其他方法可以实现我的架构?
【问题讨论】:
标签: django postgresql database-design architecture multi-tenant