Я регулярно граю у гру 2v2 з 12 друзями і хочу базу даних, щоб відслідковувати гравців, команд, рахунки та ігри, з метою створення системи ранжування.
Оскільки ми регулярно міняємо команди, я складаю таблиці players
, teams
і в games
яких іграх є дві команди (team1 та team2), і команди складаються з двох гравців (player1 та player2).
Це спричиняє досить багато проблем - наприклад, якщо я вибираю двох гравців (назвемо їх A і B ), щоб грати разом, я повинен перевірити, чи вже існує команда, де Player1 - це A, Player2 - B або Player1 - B і Player2 є.
У стовпцях games
і wins
в players
таблиці та в teams
таблиці - але це тому, що я хочу бачити, скільки ігор виграють гравці, а також наскільки сумісний гравець у різних командах (як часто гравець виграє, коли поєднується з інший конкретний гравець).
- Рейтинг табло (я, мабуть, буду використовувати систему оцінювання Elo )
- Сторінка статистики для кожного гравця з рейтингом, перемогами, іграми, статистикою останніх ігор та з якими гравцями він найбільш сумісний.
Я сильно підозрюю, що значна частина цього порушує деякі принципи нормалізації бази даних, і я хотів би отримати кілька пропозицій щодо того, як реалізувати дизайн моєї бази даних.