SaaS系统多租户多应用多用户设计(一)
最近公司在做多租户系统的设计,查阅了一些资料,自己做一些整理和分享。
项目背景
随着公司数字化进程,现在需要把很多独立的业务系统进行整合,使得所有用户得到统一管理,公司产品涉及到的用户类型主要有以下类型:
- 超管:用户管理 租户,商户,销售,代理的。
- 租户:我司提供系统服务的对象。
- 商户:每个租户下面可以自己新增多个商户。
- 销售:每个租户可以新增多个的销售团队。
- 代理:每个租户可以新增多个代理。
租户,商户,销售,代理都可以新增自己的多个用户。
机构关系
超管
特殊的机构,整个系统中只能有一个超管机构,用于管理系统里的所有用户信息。
租户机构
只能通过超管机构创建,用于管理租户下面的 商户,销售,代理,渠道等机构信息,真正的系统运营使用者。
商户
通过超管机构或者租户机构创建,不能独立于租户存在,每个商户都需要挂载到租户下面,商户可以有父子关系,从而满足机构层级管理要求,比如:xxx总公司/xxx深圳分公司/xxx业务线。
商户还有肯能需要绑定所属销售,所以商户中需要包含销售的机构信息;商户还有可能绑定所属代理,所以商户中还需要包含代理相关信息。
销售
通过超管机构或者租户机构创建,支持层级管理,例如:xxx销售/xxx团队/xxx小组。
代理
通过超管机构或者租户机构创建,支持层级管理,例如:xxx代理/xxx团队/xxx小组。
其他
可以根据具体的业务扩展其他类型的机构,比如对于支付业务,就需要扩展渠道类型的机构来满足业务需求。
用户机构关系
机构
每个用户都需要绑定到一个机构下面,必须要现有机构才能新增用户。
客户号
业务统一ID生成器,根据不同的业务生成对应的客户号(MaseterId)。
用户
- 一般用户:master标识为否的用户。
- 主用户:master标识为是的用户,只能通过超管和租户新增的用户,每个机构有且仅有一个主用户。