Mit Verknüpfungen von meiner Vereinsdatenbank am Ende

dyed

Grünschnabel
Hallo liebe Comunity,
ich versuche mir grade eine Vereinsdatenbank, die sich auf Fußball beschränken soll, aufzubauen.
Leider bin ich mit den Anordnungen von meinen Primär- und Fremdschlüssel am Ende bzw. mit deren Anordnung.
Was auch damit zu tun hat, dass ich noch etwas Schwierigkeiten damit habe.
Nun meine Frage: Wie kann ich diese "Anordnen" (ich nenne es jetzt mal so, weil mir nichts besseres einfällt), sodass alle Tabellen miteinander Verknüpft sind?

Kurz gesagt: Wie schaffe ich es alle Tabellen miteinander (logisch) zu verbinden.
Es soll nichts mit Quellcode sein. Ergebnis soll das Bild sein, wo alle Tabellen miteinander Verknüpft sind.

Verbesserungsvorschläge und Kritik gewünscht.

Vielen Dank :)
 

Anhänge

  • PK_FK_Sprt.PNG
    PK_FK_Sprt.PNG
    8,1 KB · Aufrufe: 14
Zuletzt bearbeitet:
Ich habe genau keine Ahnung von Fussball und den Strukturen. Um die Schlüssel zu verstehen die folgenden Fragen
1) Was ist der Unterschied zwieschen Verein und Manschaft?
2) Ist der Verein in einer Liga odr die Manschaft?
3) Warum ist Manschafts-Name und Vereins-Name verbunden? (besser über IDs verbinden)
4) Was hat die Manschaft mit der Rückennummer eines Spielers gemeinsam?

Naja, so wie ich das verstehe sollte es etwa so aussehen
Code:
Liga
------
lid (PK, FK1)
lige_name
...

Verein
------
vid (PK, FK2)
verein_name
...

Manschaft
-------
mid (PK, FK3)
lid (FK1)
vid (FK2)
manschaft-name
...

Spieler
-------
sid (PK)
mid (FK3)
spieler-name
...

Nachtrag:
Wie du siehst, gehe ich über IDs. Ist immer besser als über Namen. Namen können Ändern. Eine fortlaufende Nr. die du nur 'intern' brauchst bleibt.
 
Ich habe genau keine Ahnung von Fussball und den Strukturen. Um die Schlüssel zu verstehen die folgenden Fragen
1) Was ist der Unterschied zwieschen Verein und Manschaft?
2) Ist der Verein in einer Liga odr die Manschaft?
3) Warum ist Manschafts-Name und Vereins-Name verbunden? (besser über IDs verbinden)
4) Was hat die Manschaft mit der Rückennummer eines Spielers gemeinsam?


Zu 1: Ein Verein kann mehrere Mannschaften haben.
Zu 2: Die Mannschaft soll in einer Liga sein.
Zu 3 und 4: Naja das war nach vielen ergebnislosen Versuchen mein letzter und für mich logische Versuch.
 
Ich würde auch so wie Yaslaw vorgehen. Unabhängige IDs als PK sind immer gut.

Was mir noch nicht ganz klar ist, ist welche Realität du damit abbilden willst, respektive welchem Zweck die DB dienen soll.

Ist dir z.B. klar, dass mit dem momentanen Design du nach jedem Spiel bei den Mannschaften und Spieler per Update die Records anpassen musst? Willst du das?
Es momentan keine Trennung gibt? Egal welche Saison, es wird einfach alles in ein Topf geworfen. Und was soll passieren, wenn ein Spieler oder eine Mannschaft auf/absteigt?

Das sollten so einige Fragen sein zu denen du eine Antwort haben solltest...
 
Ich würde auch so wie Yaslaw vorgehen. Unabhängige IDs als PK sind immer gut.

Was mir noch nicht ganz klar ist, ist welche Realität du damit abbilden willst, respektive welchem Zweck die DB dienen soll.

Ist dir z.B. klar, dass mit dem momentanen Design du nach jedem Spiel bei den Mannschaften und Spieler per Update die Records anpassen musst? Willst du das?
Es momentan keine Trennung gibt? Egal welche Saison, es wird einfach alles in ein Topf geworfen. Und was soll passieren, wenn ein Spieler oder eine Mannschaft auf/absteigt?

Das sollten so einige Fragen sein zu denen du eine Antwort haben solltest...

Ich weiß. Diese Datenbank gilt nur für eine Season.
Ich wüsste nicht was für eine bessere Lösung geben könnte, wo man dann deine angesprochenen Probleme löst.
Was schlägst du vor?
 
Ich kenne deine Anforderungen nicht. Es kann sein dass dir das so bereits ausreicht, dann kann man es ja so belassen. Man muss es ja nicht komplizierter machen als es bereits ist. Du sagst ja z.B. dass nur eine Saison gültig ist, daher musst du diese Komplexität schonmal gar nicht abbilden.
Ansonsten wäre evtl. eine Tabelle für alle Spiele eine gute Idee. Das setzt dann aber implizit voraus, dass du alle gegnerischen Mannschaften und deren Spieler auch in der DB hast, was evtl. dann bereits wieder zu viel Aufwand sein kann.

Beschreib doch am einfachsten mal welche Abfragen du an die DB richten möchtest. Musst du z.B. wissen welcher Spieler in welchem Spiel in welcher Minute ein Tor geschossen hat? Oder reicht es dir aus, zu wissen dass ein Spieler in der Sasion total x Tore geschossen hat? Je nachdem was genau gefordert ist fallt anschliessend das Design aus. Natürlich hat ein grösserer Detailierungsgrad auch eine entsprechende Komplexität zur Folge.
 
Zuletzt bearbeitet:
Zurück