# 零框架多租户设计方案

多租户应用程序是一种软件架构设计，允许单个实例的软件服务多个客户，每个客户被称为一个租户，租户之间的数据自动隔离的，租户之间的数据不会相互影响，租户和用户是一对多的关系。

![多租户系统](multi-tenancy.svg)

## 零度框架中实现多租户

由于每个系统的需求不同，零度框架没有提供多租户的通用解决方案，但我们提供了三种多租户设计的思路，并提供了示例代码，以便于开发者根据自己的需求来实现多租户设计。

## 基于单表字段隔离租户数据

单表多租户设计是指在一个表中存储多个租户的数据，通过在表中增加一个 TenantId 字段来区分不同租户的数据，使用全局查询过滤器来过滤租户数据，使用拦截器来保存租户数据。


## 基于多数据库隔离租户数据

多数据库多租户设计是指为每个租户创建一个独立的数据库，通过数据库连接字符串来区分不同租户的数据，使用拦截器来设置数据库连接字符串。

## 基于单数据库架构隔离租户数据

基于 Schema 的多租户设计是指为每个租户创建一个独立的 Schema 名称 ，通过 Schema 来区分不同租户的数据。
