我在使用Orchard CMS爲我的SaaS應用程序實施多租戶門戶解決方案。我很高興看到多租戶是一流的功能,但它看起來像是爲了實現它,我必須a)爲每個租戶創建一組表,爲表前綴或b)爲每個租戶分開數據庫。沒有表/數據庫擴散的果園多租戶
我正在嘗試爲10,000多個客戶構建一個解決方案,所以任何需要我爲每個租戶進行物理數據架構更改的任何事情都無法擴展。在我們的SaaS應用程序中,我們在所有表上使用tenantID列,並使用nHibernate過濾器和許多索引以允許我們擴展。
我想在Orchard做同樣的事情。因此,不是每個租戶都有一個表,我想要一組帶有tenantID的表,然後使用數據訪問層(NHib)中的過濾器來始終提取正確的數據。
問題:
1)這可能嗎? 2)有沒有人做過? 3)任何想法的最佳途徑?我正在直接修改MultiTenancy/NHiberate模塊源代碼。
我不認爲這很容易做到,對不起。對於10,000個客戶,我懷疑你還會遇到很多其他問題,例如內存使用情況。 –
我也在尋找完全相同的基於範圍的多租戶實施。恕我直言,爲每個租戶創建單獨的表是可怕的方法,我們已經開始感覺到管理數百個和數百個表少於50個子站點的巨大開銷。 @Andrew Ryan,如果你繼續進行基於範圍的實現以及你的經驗/建議,我很樂意聽到你的這個實現。 –