Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Championsleague in Datenbank darstellen (https://www.delphipraxis.net/121443-championsleague-datenbank-darstellen.html)

Angel4585 27. Sep 2008 20:02

Datenbank: MySQL • Version: 5 • Zugriff über: php

Championsleague in Datenbank darstellen
 
Hallo,

ich versuche für meinen Fussballmanager eine Art Championsleague einzuführen.

Die Runden sind klar:

1.Runde: Qualifikation - 32 Teams spielen in Hin- und Rückspielen gegeneinander. Die 16 Gewinner kommen in die nächste Runde
2.Runde: Gruppenphase - 32 Teams verteilt auf 8 Gruppen. Jedes Team hat 6 Gruppenspiele, spielt also zweimal gegen jeden Gruppengegner. Die ersten beiden aus jeder Gruppe kommen weiter.
3.Runde: Achtelfinale - 16 Teams spielen in Hin- und Rückspiel gegeneinander. Die 8 Gewoinner kommen weiter.
4.Runde: Viertelfinale - 8 Teams spielen in Hin- und Rückspiel gegeneinander. Die 4 Gewonner kommen weiter.
5.Runde: Halbfinale - 4 Teams spielen in Hin- und Rückspiel gegeneinander. Die 2 Gewoinner kommen weiter.
6.Runde: Finale - 2 Teams spielen in einem gegeneinander. Der Gewiner gewinnt den Pokal.

Soweit so klar, aber wie stelle ich das sauber in einer Datenbank dar das ich dann auch die einzelnen Gruppen auslesen kann usw?

:angel:

sirius 27. Sep 2008 21:30

Re: Championsleague in Datenbank darstellen
 
Da es bei der kleinen Anforderung an eine DB keine Performancfragen gibt, würde ich jede Phase in eine Tabelle schreiben.
Und dann eine extra Tabelle für die Ergebnisse (Tore und Punkte etc)

Die Tabellen für die Gruppen sehen dann eben so aus, dass du dort die Temas einträgste. die Anzahl der weiteren Spalten entspricht der Anzahl der Spiele und dann trägst du halt die PSiel ID ein.

Günstig ist es wahrscheinlich zu jedem Spiel, das Ergebnis zweimal abzuspeichern, eben aus Sicht beider Teams.

omata 27. Sep 2008 21:36

Re: Championsleague in Datenbank darstellen
 
Zitat:

Zitat von sirius
Günstig ist es wahrscheinlich zu jedem Spiel, das Ergebnis zweimal abzuspeichern, eben aus Sicht beider Teams

Warum zweimal speichern? Ein Spiel besteht doch immer aus zwei Mannschaften + ein Ergebnis.

sirius 27. Sep 2008 21:39

Re: Championsleague in Datenbank darstellen
 
Da kann man durch einfache Abfrage für jedes TEam Punkte und Tore schon auf Serverseite ohne Stored Procedure errechnen, dachte ich so.
War ja nur so eine Idee. Muss ja keiner so machen.

omata 27. Sep 2008 21:44

Re: Championsleague in Datenbank darstellen
 
Ja genau kann man. Aber wieso muss dort das Spielergebnis redundant gespeichert werden.

Wenn ich eine Tabelle mit TeamA, TeamB, Ergebnis habe kann ich doch einfach das Ergebnis auslesen.

SQL-Code:
SELECT Ergebnis
FROM spiele
WHERE TeamA = :team
   OR TeamB = :team
Wo sind da jetzt komplizierte DB-Prozeduren nötig?

Angel4585 27. Sep 2008 22:03

Re: Championsleague in Datenbank darstellen
 
Also die Tabellen für teams und Matches existieren bereits:

Teams(id,name)
Matches(id,home,away,homegoals,awaygoals,start,typ e,clrunde,clgruppe)//start=Anstoss;type:0=Liga;1=Nationaler Pokal;2=Freundschaftsspiel;3=Championsleague

d.h. ich brauch eine weitere Tabelle mit den einzelnen Runden

CLRunden(id,runde,rundentyp)//rundentyp:0=KO;1=Gruppe;2=Finale

und muss die Matchestabelle dann erweitern.
Wenn alle Spiele einer Runde gespielt sind kann ich an die Auswertung gehen.
So müsste das hinhauen.

Ich probiers mal :cyclops:

omata 27. Sep 2008 22:09

Re: Championsleague in Datenbank darstellen
 
@sirius: Ich habe da gerade nochmal drüber nachgedacht. Ergebnis dieser Überlegung: Du hast recht, sorry.

Angel4585 27. Sep 2008 22:11

Re: Championsleague in Datenbank darstellen
 
Leute das ganze funzt sowieso über php&MySQL, also ist das ohnehin serveseitig oder nciht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz