MySQL Datenbank für (Sport-)Spiel

Braver Willy

Grünschnabel
Moin alle zusammen!

Ich weiß, dass die Überschrift nicht sonderlich ergibig ist, aber mir ist nicht eingefallen wie ich das besser hätte ausdrücken können.
Mir geht es eigentlich mehr um Rat von den Erfahrenen unter euch. Ich bastele an unserer Vereinshomepage für einen Inlinehockeyverein und hab da als Newbie mit php-Grundkenntnissen bisher ganz nett Sachen verwirklichen können. Jetzt will ich aber eine Datenbank für alle Spiele, die wir bisher gemacht haben, aufbauen. Das sind neun Saisons á 10-15 Spiele. Eine Tabelle für die Spielergebnisse und für alle Mannschaften, gegen die wir mal gespielt haben, hab ich bereits gemacht und das Auslesen klappt alles wunderprächtig *selbstaufdieschulterklopf* (<- Anfänger :) ).
Nun möchte ich wie gesagt eine Tabelle erstellen, die jedem Spiel (d.h. der ID des Spiels aus der anderen Tabelle) den genauen Spielverlauf zuordnet (Tore, Vorlagen und Strafzeiten jeweils mit dem genauen Zeitpunkt im Spiel). Ich würde jetzt eine Tabelle mit sagen wir mal 100 Spalten machen (ist ja immer eine unterschiedliche Anzahl von Ergeignissen...der Rest bleibt dann halt Null), die ich von 1-100 durchnummeriere und in die jeweils ein Ergegnis mit Uhrzeit reinkäme. Meine Frage ist jetzt, ob es da was cleveres gäbe bzw. ob da jemand ein paar Tipps parat hat, der so etwas schon gemacht hat (z.B. Schnelligkeit und so). Perspektivisch will ich irgend wann noch Abfragen á la "wer hat in einem Spiel am meisten Tore geschossen?" oder "was war der höchste Rückstand, der aufgeholt wurde?" etc. einbauen. Deshalb wäre es blöd zu merken, dass der Aufbau bescheuert ist, nachdem ich alle Daten eingegeben habe.

Danke schon mal im voraus zu Tipps oder Hinweisen (gerne auch Leseverweise)

BW
 
Hallo,

also von einer Tabelle mit 100 Spalten kann ich Dir in dem Fall abraten. Du willst das ganze ja auch noch warten können und später auch vernünftige und lesbare SQL-Statement schreiben. Für deinen Ansatz spricht ja nichts dagegen, das ganze auf verschiedene Tabellen aufzuteilen, d.h. dein Modell zu normalisieren, damit es sinnvoll relational abgebildet werden kann.
Die Hauptaufgabe besteht hierbei beim Identifizieren der verschiedenen Informationen und ihren (funktionalen) Abhängigkeiten, welche Informationen Schlüssel und NIchtschlüssel darstellen usw.
Ein paar verschiedene Informationen hast du ja selbst schon identifiziert, z.B.

- Spiele
- Ereignisse mit ihren jeweiligen Zeiten
- Ereignisarten (Tor, Vorlagen, Strafzeiten etc.)
- Mannschaft
- Spieler (?)
- Saison (?)
usw.

Das heisst nicht dass jede dieser Informationen vollständig in einer einzigen Tabelle abgebildet sein muss. Ist nur als Ausgangspunkt für weitere Überlegungen.gedacht.

Schau Dir dazu erstmal folgende Links an:

Relationales Datenbank-Modell
Normalisierung (Datenbank)

Markus
 
Zuletzt bearbeitet:
Hmmm, danke. Wieder was gelernt. Wäre nie auf die Idee gekommen, für so etwas bei Wikipedia zu suchen. Kann aber durchaus sein, dass ich mich nochmal melde.
 
Sorry,

aber jetzt muss ich mich wirklich nochmal melden. Ich habe jetzt jedem Spiel eine eindeutige ID zugewiesen und den Spielverlauf auf zwei Tabellen aufgeteilt. In der einen werden Torschützen, Vorlagengeber und Zeitpunkt gespeichert (jeweils mit der Spiel-ID) und in der anderen die verschiedenen Strafzeiten mit Zeitpunkt. Für alles statistsche klappt das auch gut, jetzt will ich nur einen Spielbericht für jedes einzelne Spiel auslesen lassen, in dem sowohl Tore als auch Strafzeiten der Reihe nach aufgelistet werden. Die Daten krieg ich per join-Befehl mittels der Spiel-ID auch ausgelesen, aber die Zeit macht mir Probleme, weil ich die Zeitpunkte aus beiden Tabellen (jeweils per mysql-"time" abgespeichert) in einen array kriegen müsste, um sie zu sortieren und der Reihe nach anzeigen zu lassen.

Also
07:30 Tor#7 Vorlage #34
12:51 Strafe #5 2min
usw.

Ich hoffe, ich konnte irgend wie klar machen, was ich will. Ich könnte jetzt natürlich für jedes Spiel einen Index auf beide Tabellen verteilt schreiben, mit dessen Hilfe ich die Sortierung machen könnte. Ich hoffe aber, dass es da noch was cleveres gibt...Danke!
 
Hilfe, ich krieg es immer noch nicht hin! Der Union-Befehl hilft mir glaub ich auch nicht, weil der Aufbau der Tabellen ja nicht gleich ist. Auswahlkriterium ist wie gesagt die Spiel_ID und sortiert werden müsste, wenn das irgend wie geht, nach der Zeit aus beiden Tabellen.

Tabelle 1

Spiel_ID Zeit Tor Vorlage notice
1 12:34 34 23 EQ
1 45:31 2 0 PP
2 13:00 12 2 EQ

Tabelle 2

Spiel_ID Zeit min2 code min5 min10 min25
1 23:05 23 C 0 0 0
2 3:56 99 A 0 0 0
2 37:09 0 12 0 0

Ist der genaue Aufbau meiner Tabellen. Daraus soll jetzt bei Abfrage nach Spiel_ID "1" das werden

12:34 Tor #34 Vorlage #23 EQ
23:05 min2 #23 code C
45:31 Tor #2 Vorlage 0 PP

Wenn mir irgend jemand helfen kann, wär das echt super. Oder sagt mir, wonach ich suchen muss. Mir fällt sonst nur ein, entweder noch einen Index auf beide Tabellen zu verteilen oder die Struktur beider anzugleichen und die anderen Felder dann leer lassen. Das ist aber beides nicht im Sinne des Erfinders.
 

Neue Beiträge

Zurück