Я регулярно играю в игру 2 на 2 с 12 друзьями и хочу, чтобы база данных отслеживала игроков, команды, результаты и игры с целью создания системы рейтинга.
Поскольку мы регулярно меняем команды, я придумал таблицы players
, teams
и games
в играх было две команды (team1 и team2), а команды состоят из двух игроков (player1 и player2).
Это вызывает довольно много проблем - например, если я выберу двух игроков (назовем их A и B ) для совместной игры, я должен проверить, существует ли уже команда, в которой Player1 - A, а Player2 - B или Player1 - B и Player2. это.
Столбцы games
и wins
присутствуют как в players
таблице, так и в teams
таблице - но это потому, что я хочу увидеть, сколько игр выиграют игроки, а также насколько совместим игрок в разных командах (как часто игрок выигрывает, когда объединяется с другой конкретный игрок).
- Рейтинговое табло (вероятно, я собираюсь использовать систему рейтинга Эло )
- Страница статистики для каждого игрока с рейтингом, победами, играми, статистикой последних игр и с какими игроками он наиболее совместим.
Я сильно подозреваю, что многое из этого нарушает некоторые принципы нормализации базы данных, и я хотел бы получить несколько советов о том, как реализовать дизайн моей базы данных.