我目前正在開發一個應用程序,首先要求用戶通過網站(ASP.NET)創建帳戶才能使用該應用程序。由於特殊的原因,我需要在託管的SQL Server上爲每個創建帳戶的客戶自動生成一個數據庫。所有客戶的數據庫都是一樣的。如何從應用程序自動生成SQL Server中的數據庫?
我正在考慮這樣做:因爲我有用於創建數據庫的腳本,我正在考慮將其插入存儲過程或一旦用戶完全創建其帳戶後立即啓動的觸發器。
我真的沒有看到其他解決方案,也許有人可以給我一些指導?提前致謝。
我目前正在開發一個應用程序,首先要求用戶通過網站(ASP.NET)創建帳戶才能使用該應用程序。由於特殊的原因,我需要在託管的SQL Server上爲每個創建帳戶的客戶自動生成一個數據庫。所有客戶的數據庫都是一樣的。如何從應用程序自動生成SQL Server中的數據庫?
我正在考慮這樣做:因爲我有用於創建數據庫的腳本,我正在考慮將其插入存儲過程或一旦用戶完全創建其帳戶後立即啓動的觸發器。
我真的沒有看到其他解決方案,也許有人可以給我一些指導?提前致謝。
我認爲這樣的設計已經顯示不成比例。我建議重新設計架構以允許單個數據庫中的多個客戶。
亞馬遜沒有這樣的事情。你也不應該。
我同意duffymo你會有可擴展性問題。
但是在某些情況下,您可能更喜歡使用單獨的數據庫作爲您的多租戶數據方法。
在我上一個項目中,我不得不採用單獨的數據庫方法,因爲企業想要爲每個客戶完全隔離。這是一個學校管理系統,在5 - 10年的時間內,客戶數量預計不會超過三位數。
所以我設計的解決方案是,我使用了實體框架代碼的第一種方法。每所學校都有一個獨特的學校標識符,用來爲每所學校唯一命名數據庫。連接字符串顯然是在運行時生成的。連接工廠用於根據傳遞的學校標識符創建適當的DataContext。數據庫在第一次使用時創建(如果不存在)。同時執行SQL腳本以在數據庫創建期間創建數據庫用戶(如果不存在)。
如果這種方法聽起來很吸引人,我可以共享代碼片段,如果有幫助。
是的,它看起來完全像我的情況。如果你能分享代碼,那將是非常棒的。它可以引導我一點!非常感謝 ! –