我們正在計劃一個SAAS應用程序。多個數據庫或單個數據庫?
現在我們在數據庫點。單個關係數據庫與我們所有的客戶端或每個客戶端的多個數據庫?
我認爲單個數據庫可以,但採取適當的設計和安全性。 性能如何?
這是一個工資覈算SAAS,因此每個客戶都需要根據他的公司進行員工管理。
我們正在計劃一個SAAS應用程序。多個數據庫或單個數據庫?
現在我們在數據庫點。單個關係數據庫與我們所有的客戶端或每個客戶端的多個數據庫?
我認爲單個數據庫可以,但採取適當的設計和安全性。 性能如何?
這是一個工資覈算SAAS,因此每個客戶都需要根據他的公司進行員工管理。
這取決於您是否將獨立維護每個客戶端的應用程序。如果它是「經典的」SAAS應用程序,那麼您將擁有許多客戶端,並且在大多數客戶端需要進行一些更改之前,您還沒有準備好更改應用程序,那麼應該執行一個數據庫。另一方面,如果您只是爲5個客戶端託管解決方案,並且可能發生客戶端3想要不同的事情(這很可能與工資單應用程序有關),並且您想滿足他的要求,那麼可以使用單獨的數據庫。
關於性能(如果你有SaaS和一個數據庫),有很多方法可以做到分區和其他性能改進技術(複製舉例來說)這要是你結束了性能問題,你可以實現...在在這種情況下,你將只需要維護一個數據庫。
如果您使用單個數據庫,它也會影響您的備份和安全考慮事項。通過將其全部置於單個數據庫中,則備份/恢復將影響所有客戶。它也會影響你的縮放決定。每個客戶的數據庫意味着您可以添加新的數據庫服務器和重新平衡數據庫。單個數據庫意味着您可能需要將來能夠進行羣集。
另一方面,多個數據塊意味着更多的管理開銷,並且當您提交需要架構修改的增強時,也會有更多的工作。
這是一個設計權衡
業績無關,與多個VS單一的數據庫,除非你打算分佈式數據服務器模式(單獨的服務器上的每個數據庫)。
保持多個數據庫爲您添加一些不必要的工作。讓我們假設你不知道將要發生什麼事情,哪個是最好的解決方案(如果客戶需要很多改變,數據庫的規模會迅速增加......),在這種情況下,我建議從一個數據庫開始,如果業務正在迅速成長,那麼你可以輕鬆地分離每個客戶分貝。
愛因斯坦:Everything should be made as simple as possible; But not simpler.
如果是軟件即服務,那麼你可能要考慮的韌性,以及簡單的性能。
就我個人而言,我會爲所有客戶端使用單個數據庫,但要通過負載均衡將其複製到多個服務器上,以確保在月末/發薪日。這也可以讓您在發生服務器崩潰時進行故障轉移。
對於一個較大的應用程序,我甚至可以考慮一個或兩個數據庫服務器具有讀/寫管理,有多個只讀的報告數據庫服務器,再次使用複製。你可以拿一臺服務器停機快,離線和一致的數據庫備份,同時仍保留的在線訪問。
謝謝!非常有幫助,這將幫助我採取正確的方法(單個數據庫) – 2012-02-18 18:19:58