# Datenbankstruktur - Beispiel Fußballtabelle



## MTMonline (6. September 2005)

Hallo!

Ich erstelle zur Zeit eine Internetseite für einen Sportverein.Der Bereich Fußball zeigt für jeden Spieltag die Ergebnisse der Spiele und die Rangliste (dieses Spieltags). Die Inhalte können dann selbst vom Kunden über ein kleines CMS verwaltet werden.

So soll das Ergebniss auf der Internetseite dann ungefähr aussehen:

1. Spieltag:

Spiele_______________________________Rangliste
Manschaft1 : Manschaft2   1:0___________1. Manschaft3
Manschaft3 : Manschaft4   2:2___________2. Manschaft4
Manschaft5 : Manschaft6   4:0___________3. Manschaft1


2. Spieltag:

... (sh. oben)


Wie soll ich die Mysql-Datenbank am Besten organisieren? Ich würde zuerst folgenden Tabellen erstellen:

- Fussball_Spiele (attribute: id, heim, gast, toreheim, toregast, spieltag_als_fremdschlüssel)
- Fussball_Rangliste (attribute:id, platz1, platz2, platz3, spieltag_als_fremdschlüssel)
- Fussball_Spieltag (attribute: id, spieltag)

Mein Problem ist der Spieltag. Er soll nur 1mal ausgegeben werden und auch beim Eintragen in die datenbank soll er nur einmal eingegeben werden müssen.

Frage:
Soll ich in jeder der 2 Tabellen (Spiele, Rangliste) ein Attribut Spieltag erstellen oder dieses lieber wie oben in einer eigenen Tabelle erstellen und es als Fremdschlüssel in die anderen Tabellen einbinden?

Wenn ich dann die Daten eingetragen habe, muss ich sie ja wieder auslesen. Ich muss also alle Daten der Tabellen spiele, rangliste auswählen und nach dem attribut "Spieltag" gruppieren. Wie kann ich dann bestimmen, dass alle Gruppen mit gleichem attribut "Spieltag"  diesem unterordnet werden? (Der Spieltag soll wie oben gezeigt nur einmal ausgegeben werden)


Ich hoffe ich habs nicht zu umständlich formuliert.

MfG, Tobias


----------



## Nico Graichen (6. September 2005)

andere Vorschlag:
Tabelle mannschaft

```
id | name | ...
```
id = PK

Tabelle spiel

```
mannschaft_heim | mannschaft_gast | saison | tore_heim | tore_gast
```
mannschaft_heim + mannschaft_gast = PK
mannschaft_heim & mannschaft_gast sind PK von mannschaft.id
saison ist PK von saison.id

Tabelle saison

```
id | von | bis
```
id = PK

Tabelle tabelle

```
mannschaft | saison | tore | punkte
```
mannschaft + saison = PK

Damit hast du die Möglichkeit auch für die nächsten Jahre deine Spiele zu erfassen, ohne neue Tabelle, etc anzulegen. Die Struktur kann natürlich noch erweitert werden (z.B um den Spielort).


----------

