2012-05-16 57 views
1

我打算做一個網站,人們必須登錄才能訪問它。很容易。現在,一旦他們登錄,根據他們的會員信息,我希望網站使用特定的數據庫。一個數據庫登錄,根據個人使用不同的數據庫

所以,我可以有100個數據庫,具有相同的結構,但與用戶的每個特定基團不同的數據 - 代替具有一個大的數據庫,並determinen哪些數據,他們可以與標識符列存取的。

不確定我在這裏有意義。基本上,一個網站,取決於成員資格的多個網站。

有沒有辦法做到這一點?有沒有其他方法可以有效?

謝謝!

+0

您正在使用哪個數據庫管理系統? PostgreSQL的?甲骨文? DB2?這個問題的解決方案將是非常特別的DBMS。 –

+0

MS SQL與ASP.net – Diomedes

回答

2

如果我理解正確的,你仍然有隻是一個會員數據庫,認證之後,此後根據某些標準,應用程序切換連接字符串取決於用戶,但它僅僅是一個應用程序。從技術上講,考慮到所有通用數據訪問機制(Linq2SQL,EntityFramework,SQLClient等)都允許在運行時提供連接字符串,所以這並不是特別具有挑戰性。您可以將100個連接字符串添加到您的web.config中,或者將它們存儲在其他地方(例如您的初始成員資格數據庫)。

然而,這一說,從長遠來看,你可能會發現更容易根據用戶協會的數據過濾數據的特定,並只保留一個數據庫。

考慮

  • 如果用戶被允許訪問數據的不止一個「數據庫的價值會發生什麼。在一個數據庫模型中,就像在用戶中添加另一個鏈接一樣簡單:data many:many table。
  • 你現在有100個數據庫來備份,索引等(?license!)。
  • 整合數據的報告現在必須連接到100個數據庫
  • SQL緩存和連接池對於這些數據庫不會有效。
  • 如果您需要更改模式或存儲過程,該怎麼辦?您現在需要隨處複製。

+0

謝謝, 那麼,是所有的數據庫結構相同,只是數據是不同的不同羣體。因此我不打算進行交叉訪問/鏈接。我使用sqldatasource很多,其中連接字符串位於web.config上。所以我想到了在webconfig上使用連接字符串,但這會造成很長的webcofing。然後事件,我不知道如何管理。我是否將數據庫的名稱放在會話字符串中,並在調用數據庫時將其稱爲會話字符串?那會是多麼的安全,實用和記憶力? – Diomedes

+0

不知道我該如何在其他地方存儲字符串。嘆。我真的失去了如何管理這一點。 有一個數據庫的事情,它的安全問題。我知道它的安全性如果做得對,但有些客戶不會因爲在競爭對手旁邊有數據而感到安全。 他們確實需要提供更多空間來發布回覆...... – Diomedes

相關問題