2010-02-02 4 views
1

저는 MongoDB를 사용해 앱의 일부분을 움직이기 위해 MongoDB를 실험 해 왔습니다. mongodb와 같은 문서 기반 DB는 토너먼트 대괄호에 적합 할 것이라고 생각하지만, 적절한 모델이 나오기가 힘듭니다. (여전히 RDBMS 도그마에서 벗어나려고 노력 중)MongoDB에서 토너먼트 브래킷 모델링하기

누구나 단일 및 이중 제거 토너먼트 대괄호를 모델링하는 좋은 방법에 대한 아이디어가 있습니까?

+0

약간의 싸움 끝에, 나는 그들을 다르게 모델링했다. 나는 그들 모두를 함께 할 수있는 방법을 알고 싶다. –

답변

2
토너먼트 변화는 모두 기본적으로 두 옵션 중 하나의 결과로 각 경기에 내려와

:

  • 플레이어가 승리하고 다음 라운드
  • 플레이어 승리로 진행하고
  • 플레이어가 손실 대회 및 종료 승리
  • 플레이어 잃고 대회는

그래서, 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

+0

16 명이 참가하는 토너먼트에서 어떻게 작동 할 수 있습니까? – ebi