Я пытаюсь смоделировать родословную лошадей в mongodb.
Я провел некоторое исследование в Интернете и обнаружил несколько потенциальных подходов:
- Массив предков
- график
- простые отношения {_id: "Cigar", sire: "Palace Music", dam: "Solar Slew", Sire's Sire: ...}
- Древовидная структура с вложенными наборами
Я надеюсь получить информацию от более опытных, чем я, по обоим компромиссам различных подходов, учитывая мои варианты использования ниже:
Мои варианты использования следующие:
- Презентация: я хочу отобразить или предоставить пользователю возможность отображать родословную лошади каждый раз, когда пользователь запрашивает конкретную лошадь.
- Traverse/Query: возможность легко просматривать или запрашивать родословную (по происхождению), чтобы вернуть конкретную лошадь в родословной (т.е. вернуть всех кобыл-производителей с одним потомком с более чем 5 победами на газоне)
- Производительность. Крайне важно, чтобы родословные запросы были очень производительными.
- Рейтинги: используйте данные о родословных в сочетании с результатами гонок для создания рейтингов родословных.strong text
Анализ: я хочу провести анализ родословных лошадей относительно победы и, возможно, попытаться ответить на такие вопросы, как:
- Is a horse with Northern Dancer as his great grand sire more likely to win its first turf race.
- Каковы 10 лучших производителей (матери, великие производители или великие матери) для производства победителей на уступчивом газоне.
Дополнительная информация: я планирую разрабатывать это приложение на стеке MEAN.
Спасибо за ваш вклад.