Рассмотрите эту настройку. Пожалуйста, поймите, что наша настройка намного подробнее, но это простой пример.Rails: Это прецедент для одиночного наследования (STI)?
competition
, который имеет name
. Это ежегодный конкурс.
competition_instances
который имеет location
, starts_at
.
Каждый конкурс имеет sports
, который имеет name
.
Пример:
competition
. name
: «Супер Боул» имеет разные competition_instances
каждый год, но sport
остается неизменным.
И, наоборот, competition
. name
: «Олимпиада» имеет разные competition_instances
и разные sports
в каждом competition_instance
.
Было бы лучше всего создать competition_sports
и competition_instance_sports
с competition_instance_sports
в качестве подкласса competition_sports
?
ЦЕЛЬ: Используйте competition_instance_sports
записей, если они существуют, в противном случае используйте запись competition_sports
. В нашем приложении для реального мира каждый конкурс/contest_instance может иметь 20-50 спортивных записей. Как мы можем достичь наилучшего результата?