MySQL - geeignete Tabellenstruktur gesucht

NNS

Grünschnabel
Hallo,

ich hoffe meine Frage ist nicht zu allgemein...

Ich habe eine Datenbank in der Fußballspiele mit Ergebnissen, den beteiligten Mannschaften usw. eingetragen sind.

Die Mannschaften sind in einer eigenen Tabelle und werden über die ID in die Spieleübersicht eingebunden.

Nun ändern sich ab und an mal (leider relativ häufig) die Vereinsnamen.

Ich habe mir 2 Varianten überlegt, wie ich trotzdem immer den gerade aktuellen Namen eines Vereins in der Spieleliste anzeigen kann, sind aber beide noch nicht so das wahre, ich befürchte, dass sich dadurch der Seitenaufbau sehr stark verlangsamt.

Variante A

Ich füge in der Mannschaften Tabelle ein Feld mit einem Flag hinzu, dass 1 ist, wenn eine Mannschaft umbenannt wurde, und 0, wenn nicht.

In einer weiteren Tabelle notiere ich die Mannschaft IDs, ein Datum und den neuen Namen.

Falls in der Mannschafts-Tabelle bei einer Mannschaft eine 1 steht, untersuche ich das Datum und hole mir entsprechenden neuen Namen aus der Umbenennungen-Tabelle.

Variante B

Ich lege neue Mannschaften an mit einer eigenen ID und führe 2 gleiche Mannschaften, wo sich nur der Name geändert hat anhand einer Tabelle zusammen in der ein Datum(an dem der Verein umbennant wurde) und die alte und die neue ID steht.

Bei Variante B müsste ich aber bei wirklich jedem Spiel für beide Mannschaften in die Umbenennung-Tabelle gucken, ob ihre Id dort vorkommt. Bei Variante A müsste ich das nur wenn eine 1 gesetzt ist.

Welche Variante würdet ihr mir empfehlen, bzw gibt es vielleicht eine ganz andere Heransgehensweise, an die ich noch gar nicht gedacht habe?

Achso, eine Variante C habe ich mir auch noch überlegt:

Variante C
Eine Tabelle, in der die Saison-ID, die Mannschaft-ID und der in der jeweiligen Saison aktueller Name steht. Aus dieser dann je nach der Saison des Spiels den gerade aktuellen Mannschaftsnamen holen.

Das würde aber dazu führen, dass ich für jede Mannschaft(sind ganz schon viele) in jeder Saison den Vereinsnamen in die Tabelle geben müsste, wodurch diese sehr schnell sehr groß werden würde.

Gibt es eine Möglichkeit, das zu umgehen?
 
Zuletzt bearbeitet:
Ich versteh das Problem nicht so ganz, in der Tabelle mit den Mannschaften stehen ja eine ID und der Name der Mannschaft. In der Tabelle mit den Spielen ist dann nur die ID der Mannschaft eingetragen und darüber mit der anderen Tabelle verknüpft. Ändert sich in der Mannschaftstabelle ein Name wird ändert sich nichts an der Spieltabelle, die Abfrage bekommt den aktuellen Namen der Mannschaft.

Oder hab ich irgendwas falsch verstanden?
 
Stimmt natürlich, habe das eigentliche Problem vergessen:
Ich habe auch eine Übersicht, in der die Spiele eines Vereins aufgelistet sind. Wenn hier aber Spiele aus 2 verschiedenen Spielzeiten sind, in der ein Verein verschiedene Namen hatte, bräuchte ich beide IDs.

Bzw. doch falsch verstanden, folgendes:

Ein Verein hieß 2006 A. 2007 wird dieser in B umbenannt.
Nun will ich aber, dass in der Spieleliste bei Spielen aus dem Jahr 2006 immer noch A steht, 2007 aber B.

Den Verein einfach umbenennen in der Mannschaften Tabelle geht also nicht.
 
Zuletzt bearbeitet:
Ich habs jetzt selbst gelöst glaube ich, hilft manchmal wenn man sein Problem einfach mal aufschreibt...

Bei einer Umbenennung gibt es eine neue Mannschafts-ID.
Spieleliste dadurch keine Änderung.
Alles was zu tun ist, ist eine Tabelle anzulegen, in der die alte und die neue ID eines Vereins steht.

Bei der Spieleübersicht zu einem Verein wird nach dessen ID in dieser neuen Tabelle gesucht, und falls sie gefunden wird, werden einfach alle Spiele angezeigt, in der die alte oder die neue ID auftaucht.
 
Zurück