我本周刚开始学习MongoDB。在此之前,我是一个只有SQL的人,因此转换逻辑需要一些时间。
我在这里有一个关于一对多关系的简单问题。
假设我有一本出租书,我想记录出租历史。
我应该使用哪种架构?
计划A:创建文档,使用BookId作为参考,并保留所有租借历史记录。
计划B:创建多个文档并使用BookId作为参考。每次出租这本书时,我都会为它创建一份文件。
哪个计划更好?我想Plan B更好,但我不确定。
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
http://docs.mongodb.org/manual/core/data-modeling/对如何构建您的馆藏有很好的建议。
你的任何一个方案都可以工作但是如果每本书的出租量非常大,你必须使用方案B,因为文件的最大尺寸。
您还可以使用计划B混合计划A和B,但也可以使用该书存储有限的近期租赁数据,这样您只需一次访问数据库即可满足初始查询,但如果用户则滚动下来看看你开始取得租房记录的更多信息。
您通常可以像在SQL中一样考虑它,但在需要提高性能时添加一些非规范化。