На самом деле, я не уверен, что согласен.
Если у вас есть поле «round» в таблице «match», вы вводите возможность проблем с целостностью, так как в итоге вы получите строку в таблице для каждого раунда (что на самом деле не имеет смыслапоскольку это таблица «совпадений», то для каждого совпадения должна быть только одна строка)
Если вы сделаете это, в каждой строке может быть разный набор участников, что, вероятно, не является вашим намерением иуказывает на то, что вы должны «округлить» ключ к другой таблице.Другими проблемами, связанными с честностью, будут «поле победителя», например, если вы укажете победителя раунда в таблицах матчей, как вы узнаете, кто выиграл матч?Если вы просто поместите победителя матча во все ряды, вы потеряете информацию о том, кто выиграл раунд.
Для соответствующей нормализации создайте, скажем, таблицу «MatchRound».
Giveваша таблица сопоставления - первичный ключ (например, назовите его Match_Id), а затем ваш круглый стол может иметь: Round_Id (автономный номер или аналогичный уникальный первичный ключ), Match_Id (который является внешним ключом таблицы сопоставлений) и, возможно, RoundOrder и RoundType (Final, Полу и т. Д.).Вы, вероятно, также можете добавить Winner и Loser в эту таблицу.
Хотя двойное использование поля round_number для полу / четвертей и т. Д. Будет работать, оно работает только в том случае, если топология согласована между совпадениями, например, всегда естьчетвертьфинал?Некоторые виды спорта накапливают очки, например, и затем имеют только финал.По этой причине я бы просто создал текстовое поле RoundType.