2013-10-14 87 views
0

我在思考和探索爲我的新應用程序設計數據庫的選項。一般來說,我會註冊用戶和他們的信息。他們將能夠在應用程序中做一些事情,該數據將作爲用戶數據在山姆DB(所以我可以有FK的共享和東西)數據庫設計 - 在兩個數據庫之間共享數據?

但是,我打算有第二個數據庫將在邏輯完全獨立於第一個數據庫,除了將用戶ID分享爲FK。

我不知道我應該甚至把第二個邏輯放在一個額外的數據庫或我應該在同一個數據庫中的一切。我計劃在我的應用中使用第二個邏輯子域(它類似於應用中的應用),但是如果我發現它們應該共享更多數據,該怎麼辦?這種交叉查詢會降低我的性能嗎?這是一種實際的方式,是否有一個真正的理由來分離數據庫?

回答

2

只要有兩個數據庫,就會有潛在的複雜性。爲什麼你需要兩個數據庫,你沒有給出任何特別的理由。所以保持簡單,直到你有一個理由。

一個人的例子:有一個「當前」數據庫,很小,只保存現在需要的數據。這可能是訂單被採取和履行的地方。一旦數據不再是最新數據,例如在訂單填滿後的幾天或幾周內,將數據移動到「歷史」數據庫。市場營銷和管理人員可以關注歷史上的整體趨勢,而不會影響「當前」數據庫的性能,而這些數據庫的性能對於保持客戶的滿意度至關重要。作爲一個複雜性的例子:任何時候當你有兩個數據庫時,你需要考慮它們之間的一致性,這比確實要難以確保。數據庫確實提供了兩階段事務處理能力,或者可以設計批處理流程,但總是有些微妙的東西難以捕捉。

1

我只是將所有數據保存在一個數據庫中。除非你有幾十張桌子,否則應該沒有真正的性能問題,恕我直言。然而,它將大大方便您的生活,只需要使用一個數據庫連接&,不必擔心合併來自兩個查詢的信息,

1

也同意,除非您的數據量會很大(根據問題來判斷,似乎並不是這種情況),您可以使用單個數據庫來存儲數據,而不會出現性能問題。

對於數據結構的「可視化」分離,您始終可以在兩個單一數據庫模式中創建表。