SaaS 多租户数据库 Schema
设计 SaaS 多租户数据库 schema——租户、套餐、带成员关系的用户、工作区和审计日志。
使用此模板模板亮点
- 租户作为顶层隔离边界,每张资源表带 tenant_id
- 全局 User 加按租户的 Membership 和角色
- Plan / Subscription 计费加按租户范围的审计日志
这个模板适合做什么
本 SaaS 多租户数据库 schema 提供一份可直接编辑的 ER 图,适用于任何 B2B SaaS——每个客户(租户)的数据相互隔离。它建模了每个多租户应用都需要的实体:租户本身、驱动计费的套餐与订阅、作为全局身份的用户、把用户映射到带角色的租户的成员关系、租户内部的工作区,以及所有都带 tenant_id 用于行级隔离的业务资源。关键设计决策是采用共享 schema + tenant_id 列(最常见)还是每租户一个 schema——本模板展示共享 schema 模式。适合用于设计新的 SaaS、为安全评审整理租户隔离文档,或解释用户如何属于多个租户。
适用场景
- 为新的 B2B SaaS 设计数据库,让客户互相看不到对方的数据。
- 在共享 schema 加 tenant_id 与每租户独立 schema 之间做选择。
- 建模一个用户账号如何带不同角色属于多个租户。
- 规划计费实体:订阅与套餐如何关联到租户。
- 为安全或合规评审整理租户隔离边界的文档。
- 展示每个业务资源都带 tenant_id 以做行级过滤。
使用步骤
- 1从位于中心的 Tenant 开始——所有其他表要么描述它、要么以它为范围。
- 2添加 Plan 和 Subscription,让每个租户有当前套餐和计费状态。
- 3把 User 作为全局身份,把 Membership 作为「租户-用户-角色」关联。
- 4在租户内部添加 Workspace(可选,用于租户内的项目或团队)。
- 5添加业务 Resource 表;每个都带 tenant_id 用于隔离。
- 6添加按租户划分的 AuditLog,用于合规和调试。
简单示例
B2B SaaS schema
Plan → Subscription → Tenant
User ↔ Membership ↔ Tenant(一个用户可属于多个租户)
Tenant → Workspace → Resource(每行都带 tenant_id)
User → AuditLog(action、tenant_id、时间戳)
行级安全:每个查询都加 WHERE tenant_id = current_tenant()
在线开始编辑
在 CodePic 中打开模板后,替换示例节点,就能很快整理成自己的学习导图。


