From 2588ed695fb073cab0cb62850b16c405b46a617b Mon Sep 17 00:00:00 2001 From: hello <35678049+bit365@users.noreply.github.com> Date: Sun, 28 Apr 2024 16:03:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E6=A1=86=E6=9E=B6=E5=A4=9A=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E8=AE=BE=E8=AE=A1=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- samples/MultiTenancySample/README.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/samples/MultiTenancySample/README.md b/samples/MultiTenancySample/README.md index 0210302..caa42d8 100644 --- a/samples/MultiTenancySample/README.md +++ b/samples/MultiTenancySample/README.md @@ -1,20 +1,22 @@ -# 零框架多租户设计方案 +# 闆舵鏋跺绉熸埛璁捐鏂规 -多租户应用程序是一种软件架构设计,允许单个实例的软件服务多个客户,每个客户被称为一个租户,租户之间的数据自动隔离的,租户之间的数据不会相互影响,租户和用户是一对多的关系。 +澶氱鎴峰簲鐢ㄧ▼搴忔槸涓绉嶈蒋浠舵灦鏋勮璁★紝鍏佽鍗曚釜瀹炰緥鐨勮蒋浠舵湇鍔″涓鎴凤紝姣忎釜瀹㈡埛琚О涓轰竴涓鎴凤紝绉熸埛涔嬮棿鐨勬暟鎹嚜鍔ㄩ殧绂荤殑锛岀鎴蜂箣闂寸殑鏁版嵁涓嶄細鐩镐簰褰卞搷锛岀鎴峰拰鐢ㄦ埛鏄竴瀵瑰鐨勫叧绯汇 -## 零度框架中实现多租户 +![澶氱鎴风郴缁焆(multi-tenancy.svg) -由于每个系统的需求不同,零度框架没有提供多租户的通用解决方案,但我们提供了三种多租户设计的思路,并提供了示例代码,以便于开发者根据自己的需求来实现多租户设计。 +## 闆跺害妗嗘灦涓疄鐜板绉熸埛 -## 基于单表字段隔离租户数据 +鐢变簬姣忎釜绯荤粺鐨勯渶姹備笉鍚岋紝闆跺害妗嗘灦娌℃湁鎻愪緵澶氱鎴风殑閫氱敤瑙e喅鏂规锛屼絾鎴戜滑鎻愪緵浜嗕笁绉嶅绉熸埛璁捐鐨勬濊矾锛屽苟鎻愪緵浜嗙ず渚嬩唬鐮侊紝浠ヤ究浜庡紑鍙戣呮牴鎹嚜宸辩殑闇姹傛潵瀹炵幇澶氱鎴疯璁° -单表多租户设计是指在一个表中存储多个租户的数据,通过在表中增加一个 TenantId 字段来区分不同租户的数据,使用全局查询过滤器来过滤租户数据,使用拦截器来保存租户数据。 +## 鍩轰簬鍗曡〃瀛楁闅旂绉熸埛鏁版嵁 + +鍗曡〃澶氱鎴疯璁℃槸鎸囧湪涓涓〃涓瓨鍌ㄥ涓鎴风殑鏁版嵁锛岄氳繃鍦ㄨ〃涓鍔犱竴涓 TenantId 瀛楁鏉ュ尯鍒嗕笉鍚岀鎴风殑鏁版嵁锛屼娇鐢ㄥ叏灞鏌ヨ杩囨护鍣ㄦ潵杩囨护绉熸埛鏁版嵁锛屼娇鐢ㄦ嫤鎴櫒鏉ヤ繚瀛樼鎴锋暟鎹 -## 基于多数据库隔离租户数据 +## 鍩轰簬澶氭暟鎹簱闅旂绉熸埛鏁版嵁 -多数据库多租户设计是指为每个租户创建一个独立的数据库,通过数据库连接字符串来区分不同租户的数据,使用拦截器来设置数据库连接字符串。 +澶氭暟鎹簱澶氱鎴疯璁℃槸鎸囦负姣忎釜绉熸埛鍒涘缓涓涓嫭绔嬬殑鏁版嵁搴擄紝閫氳繃鏁版嵁搴撹繛鎺ュ瓧绗︿覆鏉ュ尯鍒嗕笉鍚岀鎴风殑鏁版嵁锛屼娇鐢ㄦ嫤鎴櫒鏉ヨ缃暟鎹簱杩炴帴瀛楃涓层 -## 基于单数据库架构隔离租户数据 +## 鍩轰簬鍗曟暟鎹簱鏋舵瀯闅旂绉熸埛鏁版嵁 -基于 Schema 的多租户设计是指为每个租户创建一个独立的 Schema 名称 ,通过 Schema 来区分不同租户的数据,使用拦截器来设置 Schema 名称。 \ No newline at end of file +鍩轰簬 Schema 鐨勫绉熸埛璁捐鏄寚涓烘瘡涓鎴峰垱寤轰竴涓嫭绔嬬殑 Schema 鍚嶇О 锛岄氳繃 Schema 鏉ュ尯鍒嗕笉鍚岀鎴风殑鏁版嵁锛屼娇鐢ㄦ嫤鎴櫒鏉ヨ缃 Schema 鍚嶇О銆