2012-05-04 148 views
0

我們已經完成了一個包含大約20個SQL Server表的項目,並且完成了一個ASP.NET項目。管理多個數據庫

最近我們的客戶告訴我們一個叫做Site的新參數。正如他所說的,對於每個站點,Application中的項目數據必須有多個站點。由於應用程序已完全開發,我們現在正面臨一些問題,因此我們無法更新與Application相關的每個SQL Server表和每個SQL查詢,以根據站點參數進行更改,現在我們正在討論爲每個站點擁有多個數據庫。

事情變得更糟,因爲客戶說每個項目可能會有大約20個網站。所以對我們來說,管理20個數據庫將非常困難。

有人可以告訴我們一個適當的解決方案來解決這個問題嗎?

+0

我不不知道你的系統,所以我只能提供有限的建議 - 但是你不能僅僅使用eg添加'Site'一個'SiteID'到你的數據庫,爲了有一個單一的數據庫 - 而不是創建一個混亂的20個數據庫.... –

+2

我想你沒有解釋你的問題,因爲你期望。這有點令人困惑...... –

+1

每個網站的數據庫,但仍然是同一個項目的一部分,可能會回來困擾你,當他們開始要求分析項目作爲應用程序的一部分。 – MartW

回答

1

您提出的解決方案似乎是正確的;每個站點使用不同的數據庫(注意:根據事務量,數據庫服務器可以輕鬆託管所有20個數據庫)。

說明: 您需要的是將每個站點的數據分開;這可以通過向表格數據添加站點標識符或確保站點不共享數據存儲來完成;後者在這種情況下是最簡單和最具成本效益的解決方案。

請注意,「維護一個數據庫」並不像聽起來那麼難;在我看來,要管理的數據和交易的數量以及手動更正的數量是維護成本的關鍵因素...

+1

關於所有網站的報告呢? –

+0

海報沒有列出這個要求。如果是這樣,權衡變成「重寫所有現有代碼來處理原始數據庫中的siteID」vs「重寫需要跨越多個站點的報告查詢」 –

0

我以前在這條路上一直走下去,我們做了什麼創建了一個Site表,然後創建了一個網站擁有的對象,我們將一個外鍵關係添加回Site表。

在我們的案例中,我們只有三個或四個對象擁有一個網站,所以我們只需修改4個表格。然後,從那裏的關係仍然可以工作,不需要修改。

我不會去每個站點數據庫的路徑,它會成爲一個維護的噩夢,如果你要在將來數據庫的修改,或者如果你想拉整個系統作爲一個整體報告