2013-12-09 158 views
1

我正在做一個網站與meteorjs有用戶,每個用戶可以製作一個列表,每個人都可以查看和共享。我的問題是關於製作一個高效的mongodb模式。Mongodb模式設計流星js

  • 我應該對用戶的 職位的收集和分類收集,領帶這兩個在一起?

  • 或者我應該只有一個包含用戶的集合,並且在每個 用戶下都有一個包含帖子的屬性?

  • 或者還有另一種方法來做到這一點?

我查了各種模式設計,但我很困惑如何使用'posts'集合工作用戶的集合。

任何文檔,答案或方向感將大大升值。

回答

3

首先,不要創建自己的用戶集合,使用帳戶包。

通常,文檔數據庫中的文檔是一組將同時顯示的數據(並非總是如此,但其想法是從儘可能少的文檔構建頁面)。對於你的用例,我會有一個posts集合,它有一個userId字段和一個comments數組,每個數組也有一個userId字段。您還可以在每個帖子/評論中存儲用戶數據的子集 - 特別是如果該數據無法更改。

請注意,這是一個與SQL數據庫完全不同的方法,我們總是希望根據需要規範化數據並加入記錄。在文檔數據庫中,最好將數據儘可能多地進行非規範化處理,以優化性能。