PDA

Vollständige Version anzeigen : Spielplan Organisation


dadoener
15.03.2007, 15:30
Einen wunderschönen Tag wünsche ich allen hier im Forum.

Ich habe ein Problem beim erstellen einer Datenbank und komme nach vielem überlegen leider nicht weiter. Vielleicht habe ich ja Glück und jemand hier weiss Rat.

Mein Problem ist folgendes:

Ich habe eine Datenbank erstellt in der ein Benutzer verschiedene Ligen anlegen kann.
Jede Liga hat verschiedene Mannschaften.
Diese Mannschaften sollen gegeneinander spielen.

Bis jetzt kann man die Spielbegegnungen per Hand eintragen und so z.B. die schon gelaufenen Duelle der Bundesliga eintragen.

Allerdings suche ich nun nach einer Funktion mit der man in einem Formular 18 Mannschaften der Liga auswählen kann. Aus diesen Mannschaften sollen dann automatisch die Spielpaarungen berechnet werden so das jede Mannschaft gegen jede andere Mannschaft spielt, einmal als Heim- und einmal als Gastmannschaft.

Nachdem dies berechnet wurde sollen diese Spielpaarungen in die Tabellen geschrieben werden, so das man sich die Paaarungen jederzeit ansehen kann.

Leider fällt mir keine genaue Lösung hierfür ein vielleicht kann mir ja jemand dabei weiter helfen und wärend ich hier versuche das Problem zu lösen Tipps geben oder hat sogar schon eine Lösungsmöglichkeit.

Mit freundlichen Grüßen in Hoffnung verbleibend,
doener

PS: Da ich während der nächsten Zeit eh am Rechner sitze bin ich wohl jederzeit für weitere Rückfragen zu haben Wink, vielen Dank schonmal im vorraus Smile

hcscherzer
15.03.2007, 15:39
Die Lösung für dieses Problem ist nicht gerade trivial (es soll ja wohl auch so sein, dass möglichst jede Mannschaft abwechselnd zu Hause und auswärts spielt); es gibt durchaus Leute, die dafür Honorar nehmen.

Wenn Du selber weiter drüber nachdenken magst: ein zweidimensionales Array von Booleschen Werten kann speichern, ob zwei Teams schon mal gegeneinander dran waren. So könntest Du zwar alle Begegnungen verteilen aber noch lange nicht 'gerecht' dazu sind dann noch mehrere Schleifendurchläufe mit Parametern (z.B. wie oft darf ein Team nacheinander zu Hause oder auswärts spielen) nötig.

Beere
15.03.2007, 16:12
Mit
INSERT INTO Spiel (HeimS, FremdS)
SELECT Mannschaft.ID, M.ID
FROM Mannschaft, Mannschaft AS M
WHERE Mannschaft.ID<>M.ID;

Kannst Du die Spielpaarungen in eine Tabelle (Spiel) einfügen, wenn über die beiden Felder ein gemeinsamer Index festgelegt ist, können auch keine Doppelungen vorkommen. Diese Tabelle könnte dann mit der Tabelle mit den Spieldaten(Termin,Ergebnis...) in Beziehung stehen...
Die Frage(für mich) ist jetzt, ob es mehr als 18 Mannschaften gibt, wenn nicht, dann ist das so schon ausreichend. Gibt es mehr, dann könnte man entweder mit einer temporären Tabelle(für die Mannschaften) arbeiten oder in der bereits vorhandenen Tabelle(Mannschaften) ein ja/nein-Feld für ausgewählt einfügen und in der obigen Abfrage die WHERE-KLausel noch ergänzen.

dadoener
15.03.2007, 16:36
Ich wollte das feature einbauen das man auch andere Ligen anlegen kann.
Wenn das dadurch leider so komplex wird, muss ich es notfalls wohl vorerst weg lassen
:(

Hab hier mal nen screenshot von meinen Tabellenbeziehungen gemacht und hochgeladen.

http://doenercompany.do.ohost.de/ftp/other/flms-bez3.JPG

Das sieht bei mir eigentlich recht so aus schon, wie das von dir beschriebene Beere.
Nur das Feld was du zueletzt beschreibst mit Ja/Nein müsste ich dann nochmal einbaun.

Mal sehn ob ich das hinbekomme und weiter mit den Formularen Tests durchführen vllt. klappts ja...

Bin trotzdem für jeden weiteren Hinweiss dankbar ;)