2011-05-12 69 views
0

我們的要求是爲ASP.Net網站提供多租戶獨立的數據庫體系結構。對於每個租戶都會有獨立的數據庫,並且取決於UserId,在運行時應該決定連接哪個數據庫。該代碼已在生產中,我不願意在每個表中添加TenantId列,並在.Net代碼中進行類似的代碼更改。有沒有一種解決方案可以在SQL Server數據庫中創建分區,並且UI應該動態地連接到相應的分區。到目前爲止,我想到的方法是緩存所有連接字符串,並根據Tenant,在運行時選擇ConnString。multi-tenant asp.net

回答

0

如果您想使用您提供的解決方案,則需要一箇中央數據庫,包含用戶和主帳戶。主賬戶表將保存租戶ID和連接字符串。 Users表將持有用戶名,密碼和FK到租戶ID。

您根據中央DB(始終是靜態連接字符串)登錄。在您可以加入您的表並擁有主帳戶的連接字符串後。

2

這可能有點晚取決於你在構建解決方案有多遠,但你可以看看下面的框架:

有一兩件事你可以很容易做到(代碼示例)是在同一個數據庫合併多個客戶,每個客戶不同的模式相關聯;每個用戶ID都可以分配一個模式併爲正確的模式分配足夠的權限。根據你的情況,這可能是有道理的。你會使用Windows Azure/SQL Azure嗎?

我問起有關SQL Azure的原因是由於提供新客戶變得更容易,因爲它可以通過編程方式完成。

相關問題