다음 시나리오 - 댄스 경연 결과를 저장하는 응용 프로그램에 가장 적합한 디자인을 찾으려고합니다.이 병렬 계층을 제거하는 방법
이벤트에는 여러 라운드가 포함되어 있으며 각 라운드에는 여러 개의 공연 (댄스 당 하나씩)이 포함되어 있습니다. 각 공연은 점수 표를받는 많은 심사 위원이 심사합니다.
최종 라운드 (6 개 이하의 댄스 커플 포함) 또는 정상 라운드 (6 개 이상의 댄스 커플 포함)의 두 가지 유형의 라운드가 있습니다. 각각은 약간 다른 행동과 데이터를 요구합니다.
최종 라운드의 경우, 각 점수표에는 최종 결과에 6 쌍의 순서 목록이 포함되어 있습니다.이 목록에는 판사가 1 위, 2 위 등을 표시합니다. 이러한 점수 표기는 "점수 표에는 6 점의 점수가 있습니다"라고합니다. 한 세트에 한 쌍의 숫자와 그 부부가있는 장소
정상적인 라운드의 경우, 각 점수 시트에는 일련의 M 쌍이 포함되어 있습니다 (M <). 대회 주최자가 결정). 나는이 회상을 "M 회고록"이라고 부른다. 부부 56
- 1 위 예 에 대한 순위
포함되어 있지 않습니다 4 위 : 커플 98
- 5 위 : 커플 3
- 6 위 : 커플 125 has_one의 final_round - 다음 커플 54,67,201104187209,8,56,79,35,167,98
이 내 순진 버전이
이벤트로 구현 불러올 수 있습니다 정상적인 라운드 들어
has_many의 final_performances final_performance - - has_many의 final_scoresheets final_scoresheet - has_many의의 대여
0, has_many는final_round에게 라운드
라운드 - has_many의 perforomances 성능 has_many의 scoresheets 스코어의 has_many이 필요한 것을 내가 중복을 싫어하지만
을 회상, 그리고 고통이 될 것입니다 (원형, 성능 및 스코어에 대한) 여러 개의 병렬 계층 구조를 가지고 유지하다.