2011-01-05 75 views
0

我們有一個基於JDBC和Oracle數據庫運行的應用程序。需要創建另一個應用程序實例。新創建的應用程序實例將爲公司的可信客戶端設計,訪問同一應用程序服務器的事實不會造成問題。將應用程序分叉到兩個實例 - 一個或兩個數據庫實例?

在這裏,我們產生疑問,因爲我們有三種選擇如何完成任務:

  1. 部署應用程序的另一個實例,並創建一個單獨的數據庫。
  2. 修改應用程序訪問兩個單獨的數據庫
  3. 修改應用程序,並支持「的實例」數據庫 - 每個表將有另一列來定義我們正在

有一些工作哪個實例需要考慮的因素:改變工作量,易於維護(修補應用程序和數據庫,存儲在存儲庫中,需要保持兩個版本是最新的)。

我知道這個問題沒有明確而明顯的答案,但我只是想聽聽你的意見,看看每種解決方案的優缺點,最重要的是知道我沒有在每個解決方案中看到的潛在缺陷。

回答

1

我認爲,如果你2個實例應該看到單獨的一組數據最簡單的方法是創建兩個獨立的(由相同的)DB模式和配置一審以第一模式和二審工作與第二模式工作。

如果這兩種情況下應看到相同的數據只是配置它們使用相同的DB工作。

在任何情況下不修改代碼來支持這樣一個愚蠢的要求。如果你收到了一個這樣的要求,你以後會收到更多(我不是算命先生,我只是有一些經驗......)。我認爲,每當你有另一個部署需求時,你想要改變你的應用程序的最後一件事。

+0

好,每個實例的數據將是完全獨立的,但誰知道,也許有一天,其實我們需要有一些跨實例的訪問。但實際上,有了模式而不是數據庫的想法可能是一個很好的解決方案。 – starko 2011-01-05 10:50:59

+0

@starko - 不要在這裏預測未來。因爲您「可能」需要稍後訪問它,所以做出額外的工作是決定構建代碼庫的複雜程度的一種危險方式。堅持簡單的事情在這裏,只是創建另一個數據庫實例。實際上,如果你的代碼已經正確,那應該意味着配置一個不同的數據源,這應該是微不足道的。 – rfeak 2011-01-05 16:04:05

相關問題