如何在NoSQL数据库中设计这种一对多模式



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

关于一对多关系,我有一个简单的问题。

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

计划A:创建一个文档,使用BookId作为参考,并保存所有租赁历史。

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

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

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

你的任何一种方案都可以奏效,但如果每本书的租金非常高,你必须使用B计划,因为文件有最大尺寸。

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

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

最新更新