[Allg.] Datenbank-Design, Turnierbaum

soyo

Erfahrenes Mitglied
Hallo,

ich hoffe ich stelle hier die Frage richtig ... Und zwar möchte ich die Aufstellung für ein Turnierbaum speichern.
Ich stehe nun vor dem Problem, wie ich die Daten speichere.
Dazu hab ich mir überlegt, pro Turnier einen Datensatz anzulegen. Dort hab ich jeweils 7 Spalten für die einzelnen Runden(7 Runden = 64 Teilnehmer) und natürlich andere Spalten, welche jetzt jedoch erstmal keine Rolle spielen sollen. In den Spalten speichere ich ich Teilnehmerids, mit Delimiter getrennt, in einen Datensatz ab. Das sieht für ein Turnier mit 4 Teilnehmern ungefähr so aus:
round1
1-2-3-4

round 2
1-3

round3
3

Das Ergebnis soll dann ungefähr so aussehen, wie auf dem GIF dargestellt. Jetzt wird jedoch bei Turnieren mit 64 Teilnehmern die Datensätze recht groß und ich muss sie ja dann noch in Arrays splitten. Wie würdet Ihr an die Sache rangehen und die Daten speichern?

Gruß soyo

EDIT: Momentan kann ich hier über die Seite nicht hochladen ... Hab es auf meinen Server geladen: Turnierbaum
 
Zuletzt bearbeitet:
Du brauchst mindestens 2 Tabellen:
Tabelle 1: Teilnehmer
T_ID, T_Name, usw

Tabelle 2: Paarungen
P_ID, P_Gegner1, P_Gegner2, P_Runde

So kannst du beliebige Paarungen unterschiedlicher Teilnehmer darstellen.
Die Runde würde sich evtl auch als Schlüsseltabelle eignen, wenn du noch mehr Informationen hinterlegen willst.
 
Irgendwie muss ich ja auch die Position der einzelnen Teilnehmer speichern. Sie müssen ja auf den gleichen "Ast" weiterrücken wenn sie gewonnen haben. Aber habe da glaube ich schon eine Idee.

Gruß soyo
 
Es soll natürlich auch die Möglichkeit geben, das Teams an mehreren Turnieren teilnehmen können. Am besten erstelle ich für diesen Fall eine zusätzliche Tabelle was?

Diese soll dann ungefähr so aussehen:
turnierteams
turID (ID des Turnieres)
teamID (ID des Teams)

Außerdem stehe ich immer noch vor dem Problem mit der Positionierung des Teams für die jeweilige Runde, hätte da jemand vielleicht noch eine Idee?

Ich hätte es so gemacht:
runde
id (ID der Runde)
turID (ID des Turnieres, zu welchen diese Runde gehört)
Teilnehmer (IDs der Teilnehmer)

Ein möglicher Wert für die Teilnehmer-Spalte würde so aussehen :
1|20|101|3

Diese würde ich dann von oben nach unten in der jeweiligen Runde in den Turnierbaum eintragen.

Ist der Gedanke zu umständlich oder kennt ihr vielleicht eine bessere Lösung?

Gruß soyo
 
Zurück