零框架多租户设计方案

This commit is contained in:
hello 2024-04-28 16:03:15 +08:00 committed by GitHub
parent d900635e6b
commit 2588ed695f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,20 +1,22 @@
# 零框架多租户设计方案 # 零框架多租户设计方案
多租户应用程序是一种软件架构设计,允许单个实例的软件服务多个客户,每个客户被称为一个租户,租户之间的数据自动隔离的,租户之间的数据不会相互影响,租户和用户是一对多的关系。 多租户应用程序是一种软件架构设计,允许单个实例的软件服务多个客户,每个客户被称为一个租户,租户之间的数据自动隔离的,租户之间的数据不会相互影响,租户和用户是一对多的关系。
## 零度框架中实现多租户 ![多租户系统](multi-tenancy.svg)
由于每个系统的需求不同,零度框架没有提供多租户的通用解决方案,但我们提供了三种多租户设计的思路,并提供了示例代码,以便于开发者根据自己的需求来实现多租户设计。 ## 零度框架中实现多租户
## 基于单表字段隔离租户数据 由于每个系统的需求不同,零度框架没有提供多租户的通用解决方案,但我们提供了三种多租户设计的思路,并提供了示例代码,以便于开发者根据自己的需求来实现多租户设计。
单表多租户设计是指在一个表中存储多个租户的数据,通过在表中增加一个 TenantId 字段来区分不同租户的数据,使用全局查询过滤器来过滤租户数据,使用拦截器来保存租户数据。 ## 基于单表字段隔离租户数据
单表多租户设计是指在一个表中存储多个租户的数据,通过在表中增加一个 TenantId 字段来区分不同租户的数据,使用全局查询过滤器来过滤租户数据,使用拦截器来保存租户数据。
## 基于多数据库隔离租户数据 ## 基于多数据库隔离租户数据
多数据库多租户设计是指为每个租户创建一个独立的数据库,通过数据库连接字符串来区分不同租户的数据,使用拦截器来设置数据库连接字符串。 多数据库多租户设计是指为每个租户创建一个独立的数据库,通过数据库连接字符串来区分不同租户的数据,使用拦截器来设置数据库连接字符串。
## 基于单数据库架构隔离租户数据 ## 基于单数据库架构隔离租户数据
基于 Schema 的多租户设计是指为每个租户创建一个独立的 Schema 名称 ,通过 Schema 来区分不同租户的数据,使用拦截器来设置 Schema 名称。 基于 Schema 的多租户设计是指为每个租户创建一个独立的 Schema 名称 ,通过 Schema 来区分不同租户的数据,使用拦截器来设置 Schema 名称。