2008-11-05 66 views
4

我正在構建一個模塊化應用程序。通過配置,您可以打開和關閉這些應用程序模塊。我試圖確定哪些數據庫結構(mssql2005)我應該用於爲每個模塊保存數據的表。我已經想到了這兩個選項是:模塊化應用程序數據庫結構

  1. 把所有的表到一個大的數據庫,並根據模塊前綴的表。
  2. 將每個模塊的表分成不同的數據庫。

我有是共同的所有模塊的數據,所以如果我使用的解決方案2我不知道如何管理公共的數據(如用戶)。

-

要澄清一兩件事,這些模塊將可能單獨出售和配置設置的東西,不是由客戶端進行控制。這就是爲什麼我甚至考慮將它們分解成單獨的表格。

回答

0

如果你需要跨表查詢,我建議把它們放到一個數據庫中,否則它沒有什麼區別。但是,擁有一個數據庫將更容易維護。

除非你有多個數據庫的需求,否則我建議只使用一個。

1

如果是我,我會先完全規範應用程序。我將開發一種結構,將所有常見數據放入共享表中,並將特定模塊表中每個模塊的唯一數據保留。

如果共享表中的數據對於所有模塊都是真正共有的,並且沒有邊界情況下您試圖將這些「常見」表結合起來,那麼打開或關閉一個模塊應該不會影響任何其他模塊和你現在很少(如果有的話)重複數據。

1

我會一個數據庫。這極大地簡化了解決方案的管理。

然後我會正常化我的數據。這簡化了數據完整性問題。

然後,我會將每個模塊的表格添加到基礎數據庫中。我會分發這個基礎數據庫,但我不會分發未使用模塊的數據。每個模塊在安裝時都會分發它自己的數據(通過安裝程序合理安裝,而不是內置在模塊本身中)。

表前綴不會很重要,共享數據庫的好處在於您可以從任何模塊訪問每個表並且擁有共享配置文件等等......