2010-07-20 229 views
1

我正在設計我即將創建的CMS的過程。我正在考慮數據庫,以及我想通過接近它的方式。CMS數據庫設計 - 每個站點的主數據庫或多個Db

您認爲最好爲我的所有客戶網站創建1個主數據庫嗎?或者我應該每個網站有1個數據庫?

這兩種方法的優點和缺點是什麼?我一直在考慮未來,所以我正在考慮在項目中實現內存緩存或APC緩存,爲我的客戶提供一個選項。

只是想學習最佳實踐和什麼其他開發商apporach將

+0

對於APC/memcached問題,請參閱:http://stackoverflow.com/questions/815041/memcached-vs-apc-which-one-should-i-choose – 2010-07-20 11:23:23

+0

您應該考慮以下內容 - (客戶端)業務是好的,很多客戶,也許他們想要外包追逐客戶或其他需要訪問你的數據的任務 - 如果你有一個數據庫,會更簡單。 即使它是一個完全自定義的解決方案,也可以進行模塊化,並且如果您有一個db,將來會爲您節省大量工作。 – 2010-07-20 12:08:47

回答

2

我已經運行了兩者。我的企業選擇將客戶特定的數據分成單獨的表格,以便在發生腐敗時不會將所有數據都取下來。在一個理想的世界裏,這可能永遠不會發生,但是墨菲的定律......看起來很容易找到與他們分開的東西。您將100%確定地知道一個客戶的內容將永遠不會顯示在另一個頁面上。

如果您確實按照該路線行事,請準備好爲您創建和配置數據庫的腳本。建立一個完善的系統並滿足需求是沒有意義的,只是花時間手動設置數據庫並整天安裝。此外,設置數據庫名稱是一個額外的步驟,不是使用單個數據庫表的一部分 - 這是一個令人頭痛的問題,似乎一遍又一遍地重演。

1

這在很大程度上取決於定製的每個客戶端都需要的量。如果您希望客戶需要許多特定於其部署的一次性功能,則基於單個核心結構分離數據庫可能是有意義的。我強烈建議嘗試使所有客戶端都可以使用任何定製,並將所有結構定義在一個地方/數據庫中,而不是將其複製到多個數據庫中。通過使用一個數據庫,您可以更直觀地更新結構,並且可以在所有站點之間實現一致,以便它們都可以使用相同的CMS代碼。

2

開發單主數據庫。它需要少量的額外工作,併爲數據庫設計增加一點複雜性,但會給你一些不錯的功能。最大的是可以在網站之間共享數據。

爲主數據庫設計意味着您可以選擇在有意義的情況下組合站點,也可以讓您爲每個站點安裝主站點。兩全其美。