Visual LabINTERACTIVE LEARNING
02 · ACCESS CONTROLP012 MIN

Tenant、Organization 与 Workspace

为多组织 SaaS 定义清晰的客户边界、业务主体和协作空间。

MENTAL MODELMULTI-TENANT DOMAIN
01Tenant
02Organization
03Membership
04Workspace / Resource
Tenant 是隔离与计费边界,Organization 是业务主体,Workspace 是可选协作容器;小系统可重合,大系统要显式区分。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Tenant

SaaS 中共享基础设施的一位隔离客户,决定数据、配额、配置和计费边界。

02

Organization

真实业务组织,可拥有成员、客户、订单与上下级关系。

03

Workspace

组织内进一步划分项目、地区或团队协作的容器。

04

tenant_id

共享表方案中标记数据归属的关键字段,通常参与索引与唯一约束。

02 · BLIND BOTS CASE

Manufacturer 与 Dealer 应如何建模

问题现场

制造商希望看所有经销商订单,经销商只能看自己订单。

  1. 01

    每个组织独立拥有数据。

  2. 02

    用 OrganizationRelation 表表达 manufacturer—dealer 关系。

  3. 03

    授权服务根据关系与资源类型计算 scope。

得到什么

组织结构可变化,数据所有权与可见关系不再混为一谈。

03 · PRACTICE

马上动手

  1. 判断 Blind Bots 中 Tenant 与 Organization 是否需要分开。
  2. 画出用户同时加入两个 Dealer 的 Membership。
04 · PITFALLS

常见坑

  • 把 tenant_id 从请求体直接信任
  • 用户全局只允许一个 role
  • 层级关系直接硬编码在 organization.parent_id
05 · KNOWLEDGE CHECK什么时候 Tenant 与 Organization 可以是同一实体?查看答案⌄
答案

客户、计费、隔离和业务主体一一对应且近期无多组织需求时可以合并,但命名与约束仍应明确。