2010-02-02 30 views
1

我一直在試驗MongoDB以便將應用程序的某些部分移動到它。我在想,像mongodb這樣基於文檔的數據庫對於錦標賽支架來說是一個很好的選擇,但是我很難找出一個合適的模型。 (仍然試圖擺脫RDBMS教條)在MongoDB中建模錦標賽括號

任何人有任何想法爲一個很好的方式來建模單和雙淘汰賽錦標賽?

+0

經過一番戰鬥,我最終只是對它們進行了不同的建模。我很想知道一種讓他們在一起的方法。 – 2010-10-30 19:24:01

回答

2

兩個賽事的變化基本上回落到每場比賽無論是導致其中一個選項:

  • 玩家贏,並進入到下一輪
  • 玩家贏和贏得比賽
  • Player失去和退出比賽
  • Player失去和進入敗者組

所以,如果y OU模型,可以讓你有一個匹配的集合有類似的模式:

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

你可以用這個架構組成兩種類型的比賽支架和重用你的比賽邏輯,而不是支架的設置使其他兩個之間的區別。

+0

正是我在找的東西。謝謝! – bryan 2011-07-05 08:57:15

+0

你能描述一下如何爲16名球員打比賽嗎? – ebi 2013-12-05 04:51:05