[Datenbank] EER-Modellierungs; refferenzielle Entität stellt Primärschlüssel dar ...

T

Tersus

Gast
Guten Tag,

ich stehe vor einem ärgerlichen Problem, das ich nicht so recht zu lösen weiß.

Der Diskursausschnitt:
demo.png

Die WM ist eindeutig anhand ihrer Jahreszahl und "besteht" aus mehreren Ländern, die daran teil nehmen.

Team und Land sind hier Synonyme. Ein Land wird von Spielern und ihrem Trainer repräsentiert, bzw. besteht das Team aus genau einem Trainer und bis zu 11 Spielern.

Jetzt die Probleme, bei deren Lösung mir das nötige Abstraktionsvermögen fehlt. :(


Machen wir es etwas einfach und beleuchten den relationalen Zusammenhang zwischen Team und Trainer.
Ein Team hat genau einen Trainer, ABER dieser ist ja nicht immer der selbe! Er ist von der Jahreszahl abhängig, bzw. kann in der nächsten WM wechseln. Ich kann also beispielsweise dem Team "Deutschland" nicht einfach "Joachim Löw" als Trainer zuweisen.

Meine Ummodellierung schaut nun so aus.

demo2.png

Ärgerlich ist nur, dass ich das Jahr bereits in der WM zu stehen habe.

Wie kann ich es modellieren, dass das Team/Land die Entität "WM" als Primärschlüssel verwendet? Damit wäre das Team immer in Abhängigkeit zur WM, womit die Spieler und Trainer ebenfalls an die WM gekoppelt wären.

Ein Danke im Voraus an den DB-Profi für evtl. Unterstützung!
 
Zuletzt bearbeitet von einem Moderator:
Trainer(#WM, #Land, Vorname, Nachname)

Deutlich hübscher ist es natürlich wenn es noch eine Personentabelle gibt und man somit auf eine Personen-Id verweist: Dann kann man zB schön sehen dass ein Trainer bei WM X der Trainer war und bei WM Y nur Co-Trainer.
 
ice-breaker schrieb:
Trainer(#WM, #Land, Vorname, Nachname)

Das kann aber nicht die Lösung sein, weil ein Trainer dann definitiv an einer WM teilgenommen und ein Land vertreten haben muss. Es soll, und das sieht man am EER, auch unabhängige Trainer geben, die an keiner WM teilgenommen haben. :-/

Weiterhin wüsste ich auch nicht, wie man seine Tabelle als EER darstellt.
 
Na dann teil ein Trainer dem Land über einen Zeitraum mit.

Also du hast erstmal einen Trainer und dann eine n:m-Tabelle Land zu Trainer welche die beiden Zeit-Attribute "von" und "bis" hat, es wird also eine Timerange angegeben, für den diese Eigenschaft gilt. Auch wenn es im ER-Modell nicht definiert wird, gibt es Datebanken die dann auch sicherstellen, dass keine überlappenden Timeranges in die DB eingefügt werden können: PostgreSQL: Range Types
 
Zurück
Oben