2012-06-21 82 views
1

我正在從事一個具有學習目的的項目。由於這個項目因爲它的主題對我很有吸引力,所以我想要建立良好的基礎,並且可能會把它直播到最後。多用戶Web應用程序的數據庫結構

由於我的項目相當複雜,爲了向您解釋我的問題是什麼,我將使用一個作爲議程應用程序的小說項目。

這個Web應用程序將有一個日曆,用戶可以添加事件和提醒。它可以被10,000個用戶和10,000個用戶添加事件和提醒。

我的問題是你推薦哪兩種方法與數據庫結構有關?

  • 我應該在一個單獨的數據庫中創建爲每個用戶提醒和事件表(用戶創造)一個單獨的數據庫和相關的數據庫用戶
  • 或者我應該做一個表事件,一個用於提醒和一個給用戶,並將它們在一個數據庫中相互關聯?

到目前爲止,我還沒有做過任何多用戶web應用程序,並且我對於許多用戶不熟悉數據庫結構方法。如有任何設計模式,你認爲的,我將不勝感激分享:)

在此先感謝

斯托揚

回答

4

這是我的觀點:

  1. 沒有,你應該爲每個用戶創建一個單獨的數據庫。它不能縮放。這意味着每次添加用戶時,都必須創建一個新的數據庫?決不。
  2. 一個數據庫,多個用戶 - 這就是關係數據庫的出生目的。

10,000個用戶並不是那麼大的受衆。每個創建數千個事件和提醒將意味着10M事件,10M提醒​​。這不是一個大的關係數據庫。

您可能需要擔心分區和清除舊記錄。你有什麼樣的政策來保存這些事件和提醒?一年後用戶將擁有什麼訪問權限? 5年?十年?那些也是很好的主題。

獲取有關實體/關係模型一本好書,並仔細閱讀。亞馬遜的任何現代產品都可以做到。

+0

感謝您的意見和建議。 –

1

我曾經與一個數據庫一起工作,其中每個用戶數據都保存在一個單獨的數據庫中(您的選項1),並相信我這是一個噩夢,並且公司花費大量資源來整合所有這些數據庫一個單一的數據庫,這不是一件容易的事。

由於@duffymo指出一個數據庫/多個用戶是關係數據庫的用途。