2017-04-06 161 views
0

我使用MultiTenantConnectionProviderCurrentTenantIdentifierResolver配置了多租戶休眠模式。我還寫了一個攔截URL的過濾器,並決定誰是租戶。多租戶混淆

我有幾個問題/困惑。

  1. 這個設計意味着每個url都必須攜帶tenant id(可以是domain/subdomain的形式),對不對?如果它不攜帶呢?如何處理這樣的角落案件?

  2. 這種方法是否正確?我也想過在用戶會話中存儲租戶ID,但我認爲這不是一個好主意。 (在過去,我在存儲會話時遇到了問題,並且在某些情況下有其侷限性)。

    我對這兩種方法感到困惑,有沒有第三種方法請建議。我選擇了多租戶休眠策略SCHEMA

回答

0

實現多租戶設計的最佳方式是在每個事務表和一個主表中存儲租戶信息的Tenant_ID。

隨着每個請求我們需要發送tenant_id。 如果您有默認承租人要求,如果沒有tenant_id,則應插入數據,您可以實施該行爲。 您不能在另一個承租人中插入一個承租人數據,因此tenant_id是強制性的,並且Tenant_ID應具有適當的驗證。

+0

您的意思是說我應該在每個表中將tenantID作爲單獨的列嗎? –

+0

是的,如果沒有Tenant_id,則無法區分哪個行數據屬於哪個租戶。我希望這有幫助。 –

+0

實現多租戶有多種策略,您指定的策略有兩種策略,1.每個租戶都是基於架構的單獨架構,2.每個租戶都有獨立的數據庫,我使用基於SCHEMA的策略。 –