【问题标题】:Modelling tournament brackets in MongoDB在 MongoDB 中建模锦标赛括号
【发布时间】:2011-01-12 00:07:13
【问题描述】:

我一直在试验 MongoDB,以便将应用程序的某些部分移至它。我认为像 mongodb 这样的基于文档的数据库非常适合锦标赛括号,但我很难找到合适的模型。 (仍在尝试摆脱 RDBMS 教条)

任何人对模拟单淘汰和双淘汰锦标赛括号的好方法有什么想法吗?

【问题讨论】:

  • 经过一番斗争,我最终只是对它们进行了不同的建模。我很想知道一种将它们结合在一起的方法。

标签: mongodb data-modeling tournament


【解决方案1】:

两种锦标赛的变化基本上都归结为每场比赛,要么导致以下选项之一:

  • 玩家获胜并晋级下一轮
  • 玩家赢得并赢得比赛
  • 玩家输掉比赛并退出比赛
  • 玩家输了,进入败者组

因此,如果您对其进行建模,以便您拥有一组具有以下模式的匹配项:

{
_id :.., <- match id
players:[playerId1, playerId2],
resultForWinner: <either "WINS_TOURNAMENT" or match id of next match>
resultForLoser: <either "EXIT_TOURNAMENT" or match id of loser bracket match
}

您可以使用此架构组合两种类型的锦标赛括号,并重用您的锦标赛逻辑,除了括号设置之外,无需区分两者。

【讨论】:

  • 正是我想要的。谢谢!
  • 你能描述一下这对于一个有 16 名玩家的锦标赛是如何运作的吗?
猜你喜欢
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2012-01-27
  • 2012-01-24
  • 2012-04-01
  • 2016-01-16
相关资源
最近更新 更多