Mongo 数据库:每个用户具有所有交互的单个集合,还是每个参数的多个集合?

Mongo DB: Single collection per user whit all interaction, or Multiple Collections per argument?

晚上好。 我是 mongo db 的新手,我打算制作一个可以使用 Nosql(MongoDB) 的应用程序。 该应用程序的范围非常简单: 注册个人资料 向购物者索取商品 完成并发送付款通知。

如果我想做这个 SQL 我会创建一个用户 Table,一个请求项目 Table 一个发送付款人 Table。

我也会,也是为了学习一些东西,让它成为 NOsql,我选择 mongo。 我可以创建 3 个集合并放置每个不同的文档并在每次需要时进行搜索。 或者,这就是问题所在,我能否为每个用户创建集合,并在每个用户内部放置同一用户的每次交互。 因此,如果我需要搜索 User10 订单和付款人,我只会在 User10 集合中查找并搜索请求的每个项目 he\she。

但另一方面,如果我需要在特定时间范围内搜索所有订单,会对我有多大影响?它应该比我想的 SQL 慢。

这是一个可以接受的方法,有一些倒退我还没有看到,或者为了采用另一种方法而气馁?

后端将写入 Java,意味着应用程序(出于...原因)将写入 Xamarin.Form .

虽然这是可能的,但我个人建议不要这样做,因为这被认为是一种反模式,您应该阅读关于这个主题的 this 文章。

我会问自己,我希望通过这种方法获得哪些优势?如果在用户级别的快速查询是您所寻求的,那么如果有足够的索引,这应该不是问题。 (在 user_id 和时间范围内)。

还有其他标准解决方案可以处理像集合这样的规模 sharding。根据我的个人经验 MongoDB 处理规模非常好,这听起来像是一个个人项目,从中学习可能意味着你永远不会真正达到超规模,你可能遇到的第一个障碍是硬件。