Regularnie gram w grę 2 na 2 z 12 przyjaciółmi i chcę, aby baza danych śledziła graczy, zespoły, wyniki i gry z zamiarem stworzenia systemu rankingowego.
Ponieważ regularnie zmieniać zespoły Doszedłem z tabel players
, teams
a games
gdzie gry mają dwa zespoły (TEAM1 i team2) oraz zespoły składają się z dwóch graczy (Gracz1 i player2).
Powoduje to sporo problemów - na przykład, jeśli wybiorę dwóch graczy (nazwijmy ich A i B ) do wspólnej gry, muszę sprawdzić, czy istnieje już drużyna, w której Gracz 1 to A, a Gracz 2 to B lub Gracz 1 to B i Gracz 2 jest.
Kolumny games
i wins
są obecne zarówno na players
stole, jak i na teams
stole - ale dzieje się tak, ponieważ chcę zobaczyć zarówno liczbę gier wygranych przez graczy, ale także zgodność gracza w różnych drużynach (jak często gracz wygrywa, gdy współpracuje z inny konkretny gracz).
- Tabela wyników (prawdopodobnie użyję systemu oceny Elo )
- Strona statystyk dla każdego gracza z oceną, wygranymi, grami, statystykami ostatnich gier i z którymi graczami jest najbardziej kompatybilny.
Podejrzewam, że duża część tego narusza niektóre zasady normalizacji bazy danych, i chciałbym uzyskać sugestie dotyczące sposobu wdrożenia projektu bazy danych.