我正在建立一個簡單的會計系統,用戶有很多賬單。現在我正在試圖確定賬單應該是自己的收藏,還是嵌套在用戶中。我傾向於前者,但我從來沒有做過任何noSQL的東西,所以我只是通過試驗和錯誤,我認爲對我有意義。Mongo DB設計,嵌入vs關係
據我所知,Mongo的文件大小限制爲4mb,這讓我覺得我應該有一個單獨的帳單收集,因爲這些將每天累積,最終可能會佔用大量的空間。
我只是找對此事的意見。基本上我會在不同的日期間查詢用戶帳單(正如你可以想象會計系統會這樣做)。
不在於它真的很重要,但我在Rails3中項目中使用Mongoid。我想我會這樣做:
class User
references_many :bills
end
class Bill
referenced_in :user
end
任何意見或設計建議,非常感謝。你可能要考慮
啊它只是在寫...這是否會影響嵌入式文檔的原子選擇?例如,如果我只是在我的用戶文檔中對我的賬單進行$推送,那麼,如果我的用戶和所有賬單達到4mb,或者只有賬單本身在寫入時爲4mb纔算是否重要。我有一種感覺,它是後者,因此我很安全(因爲單一賬單不可能包含4mb數據,或者我會在1次寫足夠的賬單以達到這個數量)這聽起來是對的嗎?假設,我想我會採取你的建議,並去標準化。 – brad 2010-09-28 23:30:50
嗯...我想我其實是錯的,我敢肯定如果他們的賬單超過了這個數額,4mb限制會影響用戶,但是賬單中的數據量相當小,所以我要給它一張帶嵌入式賬單的照片,並在未來做一些測試,看看我可以處理什麼樣的賬單容量 – brad 2010-09-29 12:11:59