我正在建立一个简单的会计系统,用户有很多账单。现在我正在试图确定账单应该是自己的收藏,还是嵌套在用户中。我倾向于前者,但我从来没有做过任何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