我有一個最近正在使用MongoDB的項目。基本上,我的網站的核心元素是「項目」。每個項目將包含一個嵌套的「字符串」對象,其中將包含大量的字符串...因此,每個項目都相當龐大,可以接近兆字節或更多。因此,我希望將這些項目放在自己的收藏中。如何在MongoDB中存儲屬於多個其他對象的對象?
我遇到的問題是我不確定如何將用戶分配給項目。如果用戶包含他們註冊的項目列表,或者項目是否應包含用戶列表?我應該什麼時候選擇其中一個?還有更好的方法嗎? (我有一段時間沒有碰到MongoDB,所以我有點生疏)
我有一個最近正在使用MongoDB的項目。基本上,我的網站的核心元素是「項目」。每個項目將包含一個嵌套的「字符串」對象,其中將包含大量的字符串...因此,每個項目都相當龐大,可以接近兆字節或更多。因此,我希望將這些項目放在自己的收藏中。如何在MongoDB中存儲屬於多個其他對象的對象?
我遇到的問題是我不確定如何將用戶分配給項目。如果用戶包含他們註冊的項目列表,或者項目是否應包含用戶列表?我應該什麼時候選擇其中一個?還有更好的方法嗎? (我有一段時間沒有碰到MongoDB,所以我有點生疏)
我不能立即想到兩者之間的任何嚴重的停止差異。我想保持它的用戶側可能是更容易:因爲你只需要修改該用戶的行,這將很可能僅具有原子鎖也無妨
因此,考慮這些事情立即浮現在腦海,我可能會選擇在用戶中嵌入項目。
看看http://www.mongodb.org/display/DOCS/Schema+Design。適用於您的案例的指導原則是
通常,對於實體之間的「包含」關係,應該選擇嵌入。不使用鏈接時使用鏈接會導致數據重複。
如果用戶可以在多個項目的註冊過程,一個項目可以註冊多個用戶,似乎最好有項目和用戶單獨集合。