I regularly play a 2v2 game with 12 friends and I want a database to keep track of players, teams, scores and games, with the intent of creating a ranking system.
Since we regularly change teams I've come up with tables players
, teams
and games
where the games have two teams (team1 and team2) and the teams consist of two players (player1 and player2).
This causes quite a few problems - for example if I pick two players (let's call them A and B) to play together, I have to check if there already exists a team where Player1 is A and Player2 is B or Player1 is B and Player2 is A.
The columns games
and wins
are present in both the players
table and teams
table - but this is because I want to see both how many games are won by the players, but also how compatible the player is in different teams (how often a player wins when teamed up with another specific player).
- Ranking scoreboard (I'm probably gonna use the Elo rating system)
- A statistics page for every player with rating, wins, games, recent games statistics, and which players he is most compatible with.
I strongly suspect that much of this violates some of the principles in database normalization, and I would love some suggestions as how to implement my database design.