gpt4 book ai didi

mongodb - 设计具有多对多关系的 mongodb 模式

转载 作者:可可西里 更新时间:2023-11-01 10:44:04 27 4
gpt4 key购买 nike

您好,我已经开始在一个小型家庭项目中学习 Mongo,以确定它是否可以作为我们工作中的一个产品的解决方案。在走上我梦想的道路之前,我想通过堆栈溢出来运行它,以确定这个结构是否合理,以及从现在起 n 年后是否可以有效地访问数据。

该应用程序是一款收集足球比赛点差并允许用户进行模拟投注的应用程序。这为各种有趣的分析打开了大门,从投注模式到点差如何随时间变化等等。

  • 用户
    • 赌注[]
  • 团队
    • 排名[]
  • 游戏
    • 客队{}
    • 主队{}
    • 赌注[]

您会从上面的列表中注意到我列出了两次赌注。这是我的大问题之一。存储用户下注的游戏的文档存储在哪里?在游戏或用户收藏中。两者都很有道理。如果我将它存储在一个与另一个之间,那么我必须在另一个中查询一个大列表来显示数据。例如,如果我有 users.bets,那么当我想显示给定游戏的所有赌注时,我必须在所有 users.bets 中查找 game.id,反之亦然。这有效率吗?理智吗?

我想这对我来说是一个挣扎点。我知道如何在关系数据库中处理多对多,但这里不知道。是用于存储多对多的第三个集合,仍然是 mongo 中的方法。

欢迎提供意见和引用资料。

最佳答案

对数据进行非规范化没有任何问题 - 如果它在多个地方被查询,那么在您的应用程序中将它存储在多个地方是有意义的。

当您考虑如何构建事物时,需要考虑的是数据在 X 个月后的样子,因为数据会更多。

如果此应用程序收集多年数据,将所有投注历史嵌入用户文档中可能会出现问题 - 每次加载他们的文档时是否需要他们的所有历史记录?还是其中大部分将毫无用处且不相关?

我鼓励您考虑将需要的数据“一起”存储在一起,但对于您是否总是需要所有这些数据要现实和批判。

关于mongodb - 设计具有多对多关系的 mongodb 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com