如何设计这种一对多架构?

时间:2013-08-11 04:27:03

标签: mongodb

我本周刚开始学习MongoDB。在此之前,我是一个只有SQL的人,因此转换逻辑需要一些时间。

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

假设我有一本出租书,我想记录出租历史。

我应该使用哪种架构?

计划A:创建文档,使用BookId作为参考,并保留所有租借历史记录。

计划B:创建多个文档并使用BookId作为参考。每次出租这本书时,我都会为它创建一份文件。

哪个计划更好?我想Plan B更好,但我不确定。

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

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

你的任何一个方案都可以工作但是如果每本书的出租量非常大,你必须使用方案B,因为文件的最大尺寸。

您还可以使用计划B混合计划A和B,但也可以使用该书存储有限的近期租赁数据,这样您只需一次访问数据库即可满足初始查询,但如果用户则滚动下来看看你开始取得租房记录的更多信息。

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