Я вижу, это было опубликовано год назад, и вы не получили ответов. Надеюсь, вы уже что-то поняли и не напрасно проверяете Stackoverflow каждый день, чтобы посмотреть, предложит ли кто-нибудь помощь. Но в целях общего обсуждения вот мой ответ:
Мне кажется, что недостаток, и я думаю, вы видите одно и то же, состоит в том, что у вас есть две таблицы, записи которых напрямую связаны друг с другом, и, тем не менее, они имеют совершенно разные ключи.
Насколько я понимаю ваше описание, если есть запись RoundPlayers, всегда будет точно одна запись Stats, и наоборот. В этом случае я думаю, что ответ из учебника:
(а) Объединить два в одну запись. Они всегда идут вместе, почему бы не сделать их одной записью? Основная причина, по которой я НЕ вижу этого, заключается в том, что, возможно, RoundPlayer интересен в других контекстах, чем Stats. То есть RoundPlayer интересен, когда мы планируем, но статистика интересна для долгосрочного накопления производительности игрока.
Или (b) Отбросьте внешние ключи в статистике для команды, игрока и раундов. Вместо этого дайте ему один внешний ключ для RoundPlayer или, возможно, продублируйте ссылки на Contract и Round. Это сделало бы ваши ключи последовательными.
Ссылка на Team мне кажется особенно подозрительной. Не могли бы вы найти команду через игрока? Если игрок переключается на другую команду, следует ли обновить команду в статистике, чтобы она соответствовала? Если это так, это избыточно и создает возможность того, что эти два не синхронизируются. Или Стат остается привязанным к первоначальной Команде? Но какая разница для команды, так как это команда AFL, а не команда DDHP? Возможно, я неправильно понимаю требование. Я ничего не знаю об австралийском футболе. (Это, должно быть, очень сложная игра, так как все игроки должны соревноваться, вися вниз головой со дна мира ...)