2

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

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

4

1 回答 1

4

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

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

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

{
_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
}

您可以使用此模式组合两种类型的锦标赛括号,并重用您的锦标赛逻辑,而不需要区分这两种类型(除了括号设置)。

于 2011-06-27T08:06:24.033 回答