Eu jogo regularmente 2v2 com 12 amigos e quero um banco de dados para acompanhar jogadores, equipes, pontuações e jogos, com a intenção de criar um sistema de classificação.
Como trocamos de time regularmente, eu tenho tabelas players
, teams
e games
onde os jogos têm duas equipes (equipe1 e equipe2) e as equipes consistem em dois jogadores (jogador1 e jogador2).
Isso causa alguns problemas - por exemplo, se eu escolher dois jogadores (vamos chamá-los de A e B ) para jogar juntos, tenho que verificar se já existe uma equipe onde o Jogador1 é A e o Jogador2 é B ou o Jogador1 é B e o Jogador2 é um.
As colunas games
e wins
estão presentes na players
tabela e na teams
tabela - mas isso é porque eu quero ver quantos jogos são vencidos pelos jogadores, mas também como o jogador é compatível em equipes diferentes (com que frequência um jogador vence quando se une a eles) outro jogador específico).
- Placar do ranking (provavelmente vou usar o sistema de classificação Elo )
- Uma página de estatísticas para cada jogador com classificação, vitórias, jogos, estatísticas de jogos recentes e com quais jogadores ele é mais compatível.
Eu suspeito fortemente que muito disso viola alguns dos princípios da normalização de banco de dados e gostaria de algumas sugestões sobre como implementar o design do meu banco de dados.