アプリの一部を MongoDB に移動するために MongoDB を試しています。mongodb のようなドキュメント ベースのデータベースは、トーナメント ブラケットに適していると考えていますが、適切なモデルを見つけるのに苦労しています。(RDBMS ドグマからの脱却を試みています)
シングルエリミネーションとダブルエリミネーションのトーナメントブラケットをモデル化するための良い方法について何かアイデアはありますか?
アプリの一部を MongoDB に移動するために MongoDB を試しています。mongodb のようなドキュメント ベースのデータベースは、トーナメント ブラケットに適していると考えていますが、適切なモデルを見つけるのに苦労しています。(RDBMS ドグマからの脱却を試みています)
シングルエリミネーションとダブルエリミネーションのトーナメントブラケットをモデル化するための良い方法について何かアイデアはありますか?
両方のトーナメントのバリエーションは、基本的に各試合に帰着し、次のいずれかのオプションになります。
したがって、次のようなスキーマとの一致のコレクションを持つようにモデル化すると、次のようになります。
{
_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
}
このスキーマを使用して両方のタイプのトーナメント ブラケットを作成し、ブラケット セットアップ以外に 2 つの違いを区別せずにトーナメント ロジックを再利用できます。