- Zawodnik może występować w jednym klubie, ale klub może mieć wielu zawodników - jaką relację zastosować.
Jeżeli zawodnik może występować tylko w jednym klubie to relacja 1 do N. Jednak wg mnie zawodnik może występować w wielu klubach/drużynach w ciągu sezonu, więc raczej będzie relacja N do N.
- Jeden klub może grać na jednym stadionie, ale stadion moze posiadać kilku gospodarzy - podobnie.
1 do N.
- Tabela TeamPoints ma jakiś sens? Np. jakbym chciał ją później wykorzystać do budowania tabeli ligowej?
Nie ma wielkiego sensu, ponieważ meczy jest na tyle mało, że można punkty policzyć jednym zapytaniem. Dla ligi liczącej 20 zespołów masz 38 kolejek, z 10 meczami w każdej, czyli razem raptem 380 spotkań w sezonie czyli tyle co nic. Wystarczą w tabeli z meczami kolumny na punkty gospodarza i punkty gościa.
- Podobnie relacja między Team a League.
Jeżeli w jednej lidze może występować wiele zespołów to oczywiście 1 do N, chyba, że zrobisz mechanizm spadków, awansów.
Twój ostatni schemat jest lepszy ale nadal ma masę błędów, wiele drużyn rozgrywa wiele meczów, a na schemacie jest relacja 1 do N. Nie ma żadnego powiązania między meczem, a ligą w ramach której jest rozgrywany mecz. Nie ma powiązania miedzy tabelami score, penalty z tabelami matches, a przecież zawodnik strzela bramki w konkretnym meczu, w konkretnej jego minucie. Relacja między leage, a team jest 1 do 1, a przecież w jednej lidze może występować wiele zespołów (pisałem o tym już wcześniej). Piłkarz otrzymuje kartki, gra i strzela w konkretnym meczu w konkretnej jego minucie. W ogóle kartki, strzały, bramki, karne, kontuzje dałbym w jednej tabeli z wydarzeniami meczowymi... przecież te wydarzenia są do siebie podobne, można je umieścić w jednej tabeli. Tabela ze statystykami zbiorczymi piłkarza jest w ogóle zbędna, przecież możesz to wygenerować jednym zapytaniem, przeszukując tabelę wydarzeń meczowych, dzięki temu będziesz mógł również równie łatwo wygenerować statystyki dla konkretnej drużyny, co dla konkretnego zawodnika.