用途:为 B2B SaaS、白标平台、企业软件等需要服务多个组织的应用实现多租户架构,涵盖租户隔离、数据分离与按租户配置。
主要能力:提供三种隔离模型——共享数据库共享 schema(多数场景推荐,所有表带 tenant_id 列)、共享数据库按租户 schema(如 tenant_acme.users)、每租户独立数据库(企业级)。给出 TypeScript 与 Python 实现:用 AsyncLocalStorage 或 ContextVar 保存租户上下文;Express 与 FastAPI 中间件从请求头 x-tenant-id、子域名、路径 /t/{tenant} 或 JWT 默认租户解析租户,并校验用户成员关系;通过 Prisma 扩展自动为查询、创建、更新、删除注入 tenant_id 过滤;提供按租户配置服务(品牌、功能限额、集成)与缓存;给出 tenants、tenant_memberships、orders 等建表 SQL、tenant_id 索引及 PostgreSQL 行级安全策略示例。
使用方式:在请求入口挂载租户中间件,在租户上下文中执行数据库操作,业务表统一带 tenant_id 并建索引,配置按租户缓存。
适用场景:多组织 SaaS、白标平台、企业软件。
限制与注意:资料未提供具体安装命令、依赖版本、收费与性能数据;需始终按 tenant_id 过滤、校验用户租户访问、避免硬编码租户逻辑、防止跨租户引用。