Vielen Dank für die Antworten, das hat mich sehr viel weitergebracht!
Eine Frage hätte ich jetzt aber doch noch 
Ich habe mich dazu entschieden, auch noch eine Tabelle für Karten zu erstellen, in die für jedes Spiel eingetragen wird, welcher Spieler in welcher Minute welche Karte bekommen hat.
Die Tabelle habe ich mir etwa folgendermaßen vorgestellt:
PK = unterstrichen
Karten(Heimmannschaft, Gastmannschaft, Spieler, Minute, Karte)
oder
Karten(Heimmannschaft, Gastmannschaft, Spieler, Minute, Sekunde, Karte)
Da es sein kann, dass in der selben Minute zwei Spieler eine Karte bekommen, habe ich entweder daran gedacht, den Spieler, der pro Spiel nur einmal vorkommt und die Karte, die ein Spieler pro Spiel auch nur einmal erhalten kann, als Teil des Primärschlüssels zu erstellen. Die Alternative wäre, zwei Felder für die Zeit zu erstellen, einmal Minute und einmal Sekunde, da gleichzeitig nicht 2 Spieler eine Karte erhalten werden. Nun bin ich mir nicht ganz sicher, welche Variante sinnvoller ist und ob es überhaupt sinnvoll ist einen so großen zusammengesetzten Primärschlüssel zu verwenden. Ich wüsste aber auch nicht, wie ich diesen ohne IDs kleiner bekomme.
Da ich noch keinerlei Programmierkenntnisse habe und dies erst in den 2 folgenden Semestern erlernen werde, in denen ich das Projekt weiterbearbeite, kann ich noch nicht absehen, welche Probleme/Schwierigkeiten später entstehen könnten, deshalb meine Frage, ob ein so großer Primärschlüssel irgendwelche Nachteile oder Probleme mit sich bringt oder man dies besser lösen könnte/sollte.
Auch stört mich, dass bereits in der Tabelle Spiel, Tore und jetzt auch noch Karten die Heimmannschaft und Gastmannschaft auftauchen. Die Tabellen Tore und Karten sehen sich schon sehr ähnlich durch Heimmannschaft, Gastmannschaft, Spieler. Auch da die Frage, ob das schlimm ist und man dies besser anders lösen sollte oder ist das okay? Sorry, aber ich bin noch recht neu auf dem Gebiet ;-)