2009-11-24 71 views
0

我有一組asp.net MVC網站的要求如下:數據聚合 - 多個網站,一個超級用戶網站

  1. 多個站點,使用相同的代碼庫,但每個站點將有一個單獨的數據庫(這是一項要求),用戶將登錄並輸入數據。

  2. 超級用戶的單一站點,他們登錄並處理從每個單獨站點彙總的數據。

隨着我們推出給更多的客戶,第一點的網站數量可能會增加。

我的問題是關於上述架構 - 如何管理數據聚合,因爲它需要是實時的。我們是否在數據庫級別(例如,基本上是跨個別站點數據庫的聯合的視圖)或在應用程序級別維護這一點。

一些基礎設施幾點:

  1. 我們有數據庫服務器和數據庫的命名完全控制。

  2. 所有這些網站都部署到我們管理的服務器上。

我很感激任何意見或想法從人們可能已經做到這一點。

回答

0

數據聚合是否必須是完全實時的,還是幾乎可以實時解決?如果「幾乎實時」是可以接受的,那麼你可以編寫一個服務應用程序,從站點數據庫收集數據到你的單箇中央數據庫。只要過程持續運行,並且您沒有太多站點從延遲中收集數據,應該對用戶更多或更少隱形。

有一個觀點,積累所有數據庫的數據聽起來不是一個好的解決方案。它不僅可能非常慢,而且您還需要在添加新網站時更新視圖。

超級用戶網站的用意是什麼,順便說一句?僅用於報告還是超級用戶也應該編輯所有站點的數據?這可能會影響您選擇的解決方案。

+0

這將是查看和編輯。我同意你對View的觀點,它可能很慢...... – Paddy 2009-11-24 12:47:21

+0

你可以選擇一個混合的解決方案,你在中央數據庫中彙總了信息,但是你也可以直接連接到站點數據庫來編輯特定站點數據。通過爲用戶提供兩個活動的數據庫連接,這將很容易完成。一個會使用靜態連接字符串到共享數據庫,而另一個會使用特定於登錄用戶的連接字符串。 – 2009-11-24 17:30:44