0

我这周才开始学习 MongoDB。在此之前,我只熟悉SQL,所以我需要一些时间来转换我的逻辑。

我在这里有一个关于一对多关系的简单问题。

假设我有一本书要出租,我想记录出租历史。我应该使用哪个模式?

方案 A:创建一个文档,使用 BookId 作为参考,并保存所有的租借历史记录。

方案 B:创建多个文档并使用 BookId 作为参考。每次借书的时候,我都会为它创建一个文档。

哪个方案更好?我猜B计划更好,但我不确定。

4

1 回答 1

1

http://docs.mongodb.org/manual/core/data-modeling/对如何构建集合有很好的建议。

您的任何一个方案都可以工作,但如果每本书有大量出租,您必须使用计划 B,因为文档具有最大大小。

您还可以混合使用计划 A 和 B,例如,使用计划 B,但还可以将有限的最近租金数组与图书一起存储,这样您就可以通过一次访问数据库来满足初始查询,但如果用户随后向下滚动查看更多您开始获取租赁记录。

您通常可以像在 SQL 中那样考虑它,然后在需要提高性能时添加一些非规范化。

于 2013-08-11T04:41:16.753 回答