pui
Cadet 3rd Year
- Registriert
- Aug. 2004
- Beiträge
- 46
Huhu,
ich bin gerade dabei ein Modell für eine Datenbank zu entwickeln. Bin aber auf ein Problem gestoßen. Vieleicht könnt ihr mir ja weiterhelfen
Es geht um Folgendes:
In einem Film gibt es Schauspieler, Regisseur, Kameraman, usw. Alles Personen mit unterschiedlichen Funktionen. Eine Person kann natürlich auch mehrere Funktionen in einem bzw mehreren Filmen haben (z.b. Schauspieler und Regisseur in einem Film, oder Regissuer bei einem Film, und in einem anderen nur Schauspieler)
Ich habe mir folgendes Datenbankmodell überlegt, um diese Beziehungen abzubilden:
http://www.imagebanana.com/view/3v4e4awz/Untitled.png
Der Gedanke dabei war: Ich brauche für die Verbindung zwischen Film und Person noch die Information, welche Funktion sie bei diesem Film übernommen hat. Deswegen die 3-fach Tabelle (movie_has_person_has_function)
Dadurch ist es aber nur möglich, einer Person eine Funktion zu geben, wenn der entsprechende Film dazu existiert. Ich möchte aber auch speichern können, das Person XY Regissuer, Kameramann und Schauspieler ist, obwohl ich nur den Film angelegt habe, in dem Person XY der Schauspieler war.
Deswegen habe ich noch die extra n:m Tabelle (person_has_function) gemacht, um das abbilden zu können.
Jetzt sieht es aber so aus, als wäre dadurch ein Zirkel entstanden, der ja für Dateninkonsistenz sorgen kann.
Außerdem müsste ich jetzt, wenn ich einen neuen Film mit einer Person zusammen anlege, und der Person die entsprechende Funktion noch nicht zugewiesen wurde, dies in 2 Tabellen eintragen.
Überhaupt finde ich, dass das Modell nicht wirklich gut ist. Ich weiß aber auch nicht, wie ich es sonst modellieren soll.
Ich hoffe, ihr könnt mir da ein wenig helfen und mir erklären, wie man das am Besten machen sollte und warum.
Danke schonmal für's Lesen des Textes
ich bin gerade dabei ein Modell für eine Datenbank zu entwickeln. Bin aber auf ein Problem gestoßen. Vieleicht könnt ihr mir ja weiterhelfen
Es geht um Folgendes:
In einem Film gibt es Schauspieler, Regisseur, Kameraman, usw. Alles Personen mit unterschiedlichen Funktionen. Eine Person kann natürlich auch mehrere Funktionen in einem bzw mehreren Filmen haben (z.b. Schauspieler und Regisseur in einem Film, oder Regissuer bei einem Film, und in einem anderen nur Schauspieler)
Ich habe mir folgendes Datenbankmodell überlegt, um diese Beziehungen abzubilden:
http://www.imagebanana.com/view/3v4e4awz/Untitled.png
Der Gedanke dabei war: Ich brauche für die Verbindung zwischen Film und Person noch die Information, welche Funktion sie bei diesem Film übernommen hat. Deswegen die 3-fach Tabelle (movie_has_person_has_function)
Dadurch ist es aber nur möglich, einer Person eine Funktion zu geben, wenn der entsprechende Film dazu existiert. Ich möchte aber auch speichern können, das Person XY Regissuer, Kameramann und Schauspieler ist, obwohl ich nur den Film angelegt habe, in dem Person XY der Schauspieler war.
Deswegen habe ich noch die extra n:m Tabelle (person_has_function) gemacht, um das abbilden zu können.
Jetzt sieht es aber so aus, als wäre dadurch ein Zirkel entstanden, der ja für Dateninkonsistenz sorgen kann.
Außerdem müsste ich jetzt, wenn ich einen neuen Film mit einer Person zusammen anlege, und der Person die entsprechende Funktion noch nicht zugewiesen wurde, dies in 2 Tabellen eintragen.
Überhaupt finde ich, dass das Modell nicht wirklich gut ist. Ich weiß aber auch nicht, wie ich es sonst modellieren soll.
Ich hoffe, ihr könnt mir da ein wenig helfen und mir erklären, wie man das am Besten machen sollte und warum.
Danke schonmal für's Lesen des Textes