【发布时间】:2021-04-24 16:09:37
【问题描述】:
我们有一个送餐应用。我们使用 MySQL,但我们现在正在迁移到 MongoDB。
我们有这样的表格:餐厅、菜单、订单等......
要迁移 MongoDB,我对如何为“菜单”集合设计架构感到困惑
选项 1) 与 MySQL 使用相同的方式,'menus' 集合将有很多来自不同餐厅的菜单(文档)
选项 2) 每个商店将在“菜单”集合中拥有一个文档,将他们的菜单嵌入到他们的文档中
总而言之,哪一个最适合 MongoDb? 20000 个小文档与 100 个文档,每个文档包含 100 或 200 个数组/对象。 我问的是性能,如果这个应用程序随着数十家新餐厅的发展而增长
每个菜单文档几乎是 256 字节,为了计算,我们可以很容易地说每个商店的菜单在 50 到 200 之间。(所以我们不会超过 MongoDB 的 16MB 文档限制)
此外,我们需要在两个不同的页面上使用应用程序内的“菜单”,第一个:20 种来自不同餐厅的适合您附近位置的最佳食物,第二个:每个商店都有自己的页面和自己的菜单。
注意:当餐厅添加所有菜单时,他们的菜单至少在 6-8 个月内保持 98% 不变。除了价格或小细节外,他们不会轻易修改/编辑或更改。
【问题讨论】:
-
通常当您从关系 RDBMS 迁移到 NoSQL 数据库时,将每个表逐个迁移到集合并不是明智的方法。您的问题没有太多细节,但我倾向于选项 2。
标签: mongodb