Python/Django
支持分布式多租户数据库,如 Postgres+Citus
。
通过将租户上下文添加到您的查询来实现轻松横向扩展,使数据库(例如 Citus
)能够有效地将查询路由到正确的数据库节点。
构建多租户数据库的架构包括:为每个租户创建一个数据库、为每个租户创建一个 schema
和让所有租户共享同一个表。这个库基于第三种设计,即让所有租户共享同一个表,它假设所有租户相关的模型/表
都有一个 tenant_id
列来表示租户。
以下链接更多地讨论了何时以及如何为您的多租户数据库选择正确架构的权衡:
关于多租户的其他有用链接:
- https://www.citusdata.com/blog/2017/03/09/multi-tenant-sharding-tutorial/
- https://www.citusdata.com/blog/2017/06/02/scaling-complex-sql-transactions/