2013-06-26 18 views
0

我有一個類似的數據模型的項目堆棧溢出。我正在使用MEAN stack,因此我正在考慮爲MongoDB建模我的數據的最佳方法(使用MongooseJS)。所以我在想,如果有人能夠給我指導如何在mongoDB中爲Stack Overflow建模,那將爲我考慮易用性和性能建模提供一個很好的起點。性能與易用性:如何模擬堆棧溢出

顯然堆棧溢出是相當大的,可能比我們在我們經常使用的應用程序中想到的更多。因此,這裏的東西我感興趣的主要是模擬出來:

  • 用戶
  • 問題
  • 答案
  • 投票
  • 評論
  • 標誌報告

所有其他對象會很有趣,但我並不完全對此感興趣。

有些事情要考慮:

  • 我不是在對象的屬性一樣感興趣,因爲我他們之間的關係。我最感興趣的是知道是否要將文檔從性能中嵌入或引用到易用性的角度。
  • 將嵌入的問題和意見嵌入可能不是最好的解決方案,因爲您也可以在用戶配置文件頁面中查看它們。但我不確定使用引用是否是最好的方法。
  • 與我的應用程序,你可以評論意見,所以也許記下任何差異方面的差異。

回答

1

這是一個非常廣泛的問題 - 您認爲mongodb會給您帶來什麼好處,以便使用關係來實現這一點?

我會從完全非規範化的視圖開始建模,然後規範化它在哪裏有意義/有利。

積極的是每個文件都會有高數據的局部性,代表一個完整的域。缺點是您可能必須擁有多份數據副本,這些數據將需要維護 - 例如用戶配置文件數據。

我肯定會閱讀並使用data-modeling指南,並查看一些演示文稿。

但問題的癥結在於;你如何訪問這些數據,你的模型對你的需求是否有意義,它是否會按照預期的讀/寫比例進行調整。你怎麼能得到你需要的聚合數據?