【发布时间】:2012-02-26 12:46:24
【问题描述】:
我一直在使用 mongo,但来自 RDBMS 背景,面临着关于非规范化和通用数据建模的可能显而易见的问题。
如果我有一个包含子文档数组的文档类型,则每个子文档都有一个状态码。
在关系世界中,我会在记录中添加一个外键,StatusId,很简单。 在 mongodb 中,您是否会对“状态”中的关键数据片段进行非规范化,例如代码和 desc 并保持 objectid 引用另一个适当状态的集合。我想下一个问题是设计问题,如果修改了状态文档,我需要修改非规范化数据吗?
关于同一主题的另一个问题是如何为事务表建模,比如我有事件和人员,这些事件可能非常精细,比如随着时间的推移可能会导致许多记录的时间表。根据我所见,这似乎是文档子数组/子数组的一个很好的候选者,当然可以为速度编制索引。
因此是否可以只查询/查找子数组或其中的一部分?并且考虑到文档大小的 16mb 限制,而我只是限制了此人的交易历史?或者交易历史记录应该是一个单独的集合,其中一个 onjid 引用了这个人?
感谢您的任何意见
山姆
【问题讨论】: