Добрый вечер! Друзья, долго ломаю голову, как реализовать следующее: Представим себе футбольный матч. В нём есть как данные, соответствующие обеим командам (дата, место проведения, ...), так и различающиеся для каждой из команд (забитые/пропущенные мячи, угловые, желтые карточки, ...). Сначала я хотел всё это реализовать в моделе Матч, и описывать каждый параметр для каждой из команд, но в итоге мне показалось, что это плохая затея.

Затем мне пришло в голову следующее - модель Матч будет содержать данные, присущие только матчу, т.е. дата, место проведения и т.п. Отдельно будет создана модель Игра, в которой я буду добавлять из списка доступных сборных команду, и заполнять её данными об игре за выбранную команду со связью ForeignKey к модели Матч. Вроде получается логично, каждая модель Матч будет содержать две ссылки на одну и туже игру, но со стороны разных команд. Я смогу красиво делать запросы на определенный матч, выводить список команд, и информацию по каждой из них.

Однако, в игре есть некоторые поля, которые напрямую зависят друг от друга. Например, если команда А забивает 3 мяча, соответственно команда Б эти три мяча пропускает. Тут встал вопрос, а как сделать так, чтобы не повторять в каждой записи известные данные? Т.е. по сути мне необходимо чтобы при записи игры одной команды зависимые данные заполнялись у другой команды.

В итоге два вопроса, правильную ли стратегию для реализации моделей я выбрал или есть вариант логичнее? И как записывая одни данные они отражались в связанном матче у другой команды?

PS надеюсь описал достаточно понятно :)