Hallo Distrilec,
eure Meinung brauche ich immer. Kann ja sein, dass ich etwas falsch betrachte. Es gibt bekanntlich mehrere Perspektiven.
Zu meinem Denkfehler habe ich dann folgendes erarbeitet.
Hier eine Tabelle mit meinem Denkfehler:
Und hier die neue Modellierung nach dem Denkfehler:
Mein Fehler lag darin begründet, weil ich einige Tabellen vergessen und sie auch falsch benannt habe.
Was ist neu? Ich habe zwischen den Tabellen
FilmAllgemein und
FilmFassung und eine Zwischentabelle
FilmAllgemein_FilmFassung platziert. Denn ein Film kann mehrere Fassungen haben, und ein Fassung kann mehrere Filme beinhalten. In die Tabelle
FilmFassungstyp werden sämtliche Fassungstypen vom Anwender verwaltet. Diese Tabelle fungiert wieder als eine Art »Stammdaten-Halter«.
Da die Tabelle
FilmDetail von den Fassungstypen, die es auf dem Markt gibt, abhängig ist, wurde eine Beziehung zwischen der Tabelle
FilmDetail und
FilmFassung hergestellt, indem der Schlüssel (
FilmDetail_ID) als FK in die Tabelle
FilmFassung hinterlegt wurde. So richtet sich die detaillierten Informationen eines Filmes nach den Fassungsyten.
Was auch die Zitate anbelangt, habe ich eine Beziehung zwischen
FilmDetail und
FilmZitat über eine Zwischentabelle
FilmDetail_FilmZitat hergestellt. Da jetzt die
FilmFassung quasi vor
FilmDetail platziert wurde, und die Details sich nach den Fassungstypen richten, dachte ich mir, können die Zitate nun nach den Details der Filme richten.
Um weitere detaillierte Informationen in die Tabelle FilmDetail hinzuzufügen, habe ich die Tabelle
RegionalCode eingerichtet. Und damit wir nicht nur die Regional-Codes abspeichern, sondern auch dazu die entsprechenden Länder, wurde eine Beziehung zu der Tabelle
Länder hergestellt. Problem: Wir wissen ja, dass sich hinter einem bestimmten Regional-Code gleich mehrere Länder verbergen können, frage ich mich, ob ich zwischen
RegionalCode und
Länder nochmal eine Zwischentabelle einrichten soll? (
Hier ein Beispiel zum Thema Regional-Code). Die beiden Tabellen sollen hierbei auch als »Stammdaten-Halter« fungieren.
Die Tabelle
FSK ist so ziemlich selbsterklärend. In dieser »Stammdaten-Halter«-Tabelle soll der Anwender sämtliche FSK-Bezeichnungen selbst verwalten.
Die Tabellen
BildFormat (auch bekannt als Videoformat) und
TonFormat (auch bekannt als Audioformat) sollen entsprechende Formate eingetragen werden. Da ein bestimmter Film nur ein bestimmtes Bild- und Tonformat haben kann, dachte ich mir, reicht eine ganz normale 1:n-Beziehung aus. Ich überlege gerade, ob ein Film mehrere Bild- und Tonformate beinhalten kann? Eher nicht oder? Auch hierbei soll diese beiden Tabellen als »Stammdaten-Halter« fungieren.
Und zu guter letzt ist die Tabelle
Genre und die dazugehörige Zwischentabelle
Genre_FilmAllgemein hinzugekommen. Denn es ist unerheblich um welche Fassung zu diesem Film geht. Genre gilt als allgemeine Information, und daher die Beziehung mit der Tabelle
FilmAllgemein. Und da ein Film mehrere Genre beinhalten kann, und ein Genre mehrere Filme, so habe ich mich für eine n:m-Beziehung entschieden.