在MongoDB中建模锦标赛括号

时间:2010-02-02 03:06:22

标签: mongodb data-modeling tournament

我一直在尝试使用MongoDB来移动应用程序的某些部分。我认为像mongodb这样的基于文档的数据库非常适合锦标赛,但是我很难想出一个合适的模型。 (仍试图摆脱RDBMS教条)

任何人都有任何关于塑造Single和Double-elimination比赛括号的好方法的想法吗?

1 个答案:

答案 0 :(得分:2)

两场锦标赛的变化基本上都归结为每场比赛,导致其中一个选项:

  • 玩家获胜并晋级下一轮
  • 玩家赢得并赢得锦标赛
  • 玩家输掉并退出锦标赛
  • 玩家失败并前进到失败者支架

因此,如果您对其进行建模,以便您拥有一个与以下架构匹配的集合:

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

您可以使用此架构组合两种类型的锦标赛括号,并重复使用锦标赛逻辑,而不区分括号设置以外的其他两种。