从关系数据库转移到mongodb

时间:2018-05-16 21:10:37

标签: mongodb mongoose nosql

多年来我一直在LAMP堆栈中使用关系数据库,我现在正试图转移到MERN堆栈,因此试图让我的脑袋围绕mongodb和它的扁平(?)设计。

以前如果我希望user能够存储images,我会与表格行有1:n的关系,看起来与此类似,

用户

0001 test1@user.com 2018-05-05
0002 test2@user.com 2018-05-05
0003 test3@user.com 2018-05-05

图片

001 filename1.jpg 0001
002 filename2.jpg 0001
003 filename3.jpg 0001
004 filename4.jpg 0002
005 filename5.jpg 0002
006 filename6.jpg 0003

image表中的最后一个数字是user_id。现在我已经阅读了关于mongodb的内容,但仍然遵循我将如何复制这个内容,我会在我的用户集合中嵌入一个图像集合,比如嵌套对象,还是我会有一个以某种方式引用用户ID的图像集合?

1 个答案:

答案 0 :(得分:-1)

我会说:这取决于。

如果您的Image实体未与其他表共享且无法独立访问(无需访问用户),则可以将它们作为数组字段保存在User集合中。

但是如果您希望图像集合与其他集合共享,或者用户与图像集合之间存在多对多的关系,那么最好考虑使用引用({{3 }})。

此外,如果您希望图片集很大(超过几个项目),最好将参考作为解决方案 - 主要是因为它更容易搜索。