MongoDB中哪个关系更好?



对于我的所有项目,我都将我的多个集合关联为:

User model
Name:string, email:string, password:string,
vehicles:[{
"vehicleId", "vehicleId"
}]     

车辆模型
vehicleId:string,
vehicleName: string    

这是最好的方法吗?

我使用这个方法是因为在mongoose中我可以编写user.vehicle.populate()来获取所有的车辆数据

这取决于vehicles数组中条目的数量。

如果你计划存储少于几百辆车,在数组中嵌入依赖关系是最好的解决方案,因为它允许一次检索所有的用户数据。

这意味着你甚至不需要在数组中只存储车辆的id,你可以只存储整个对象。这部分取决于应用程序访问数据的方式:

  • 如果您从未独立于用户使用车辆,那么嵌入整个车辆文档是很好的,因为您可以一次检索所有数据,而无需连接两个不同的集合(昂贵)。
  • 虽然如果你确实需要这些集合独立,最好只包括id在数组中,因为它将简化您的车辆查询。

另一方面,如果车辆开始堆叠到数千辆,那么将它们全部嵌入到数组中肯定是不合适的,并且随着数据量的增长,您将出现性能问题。然后,您应该使用外键来引用vehicle文档中的user文档。

这个视频是我所知道的关于mongodb模式设计的最好的资源:https://youtu.be/leNCfU5SYR8

最新更新