m:n Verknüpfung mit mehr als 2 Tabellen

tofa

Mitglied
Hallo,

ich habe eine Verständnisfrage zu m:n-Verknüpfungen mit mehr als 2 Tabellen:

Gegeben ist folgende Situation: Der Preis für bestimmte Drucksachen soll aus einem Grundpreis für ein Produkt sowie einen Materialzuschlag errechnen, der wiederum abhängig vom Format des Materials ist.

In der Datenbank habe ich diese Situation so abgebildet:

Tabelle Produkte: Enthält Beschreibung des Produkts und den Grundpreis, Primärschlüssel ist produkt_id.

Tabelle Material: Hier wird Bezeichnung des Materials gespeichert, Primärschlüssel ist material_id.

Tabelle Format: Hier werden verschiedene Papierformate wie DIN A4, DIN A5 und der Preiszuschlag dafür hinterlegt, Primärschlüssel ist format_id.

Zwischen den Tabellen Produkte und Material besteht eine m:n Verknüpfung, weil für ein Produkt verschiedene Materialien verwendet werden können und verschiedene Produkte das gleiche auf das gleiche Material gedruckt werden können.
Zwischen Material und Format besteht ebenfalls eine m:n Verknüpfung, weil ein Material verschiedenen Formate verfügbar ist und jedes Format unterschiedlichen Materialien zugeordnet werden kann.

Ich hoffe, soweit keinen Denkfehler begangen zu haben, falls doch bitte melden. ;)

Die Zuordnungstabellen für diese m:n Verknüpfungen zu erstellen und abzufragen, ist kein Problem.

Vor ein Problem stellt mich nun aber die Frage, wie ich die Produkt-Tabelle, die Material-Tabelle und die Format-Tabelle mit einander in Beziehung setzen soll, um Konstellationen wie diese Abzudecken: Produkt A kann auf Material materialA in den Formaten DIN A4 und DIN A5 gedruckt werden. Produkt B kann auf materialA in den Formaten DIN A3 und DIN A4 sowie auf materialC im Format DIN A4 gedruckt werden.

Mir kam eine Zuordnungstabelle produkt_material_format in den Sinn, die die Primärschlüssel aus allen drei Tabellen enthält. Aber derartiges habe ich noch nie gesehen und bin mir deshalb unsicher, ob das wirklich eine praktikable Lösung ist.


Im Voraus vielen Dank für alle Antworten!
 
Hallo Matthias,

Matthias Reitinger hat gesagt.:
sehe ich das richtig, dass die möglichen Material/Format-Kombinationen vom jeweiligen Produkt abhängen?

Nicht vollständig. Nicht jedes Material kann mit jedem Format kombiniert werden. Aber alle möglichen Material/Format-Kombinationen, die für ein bestimmtes Material zulässig sein, hängen von jeweiligen Produkt ab.
 
Hallo,

dann würd ich sagen, dass die Lösung mit einer produkt_material_format-Tabelle durchaus praktikabel ist. Zumindest fiele mir jetzt nicht ein, was dagegen sprechen würde.

Grüße,
Matthias
 
Hallo Matthias,

vielen Dank für die Einschätzung! :) Ich wollte nur auf Nummer sicher gehen, bevor ich mich in eine schlechte - oder gar falsche - Lösung verrenne. Zumal Literatur, die ich zum Thema SQL gelesen habe, in Bezug auf n:m Verknüpfungen immer nur von zwei Tabellen spricht, die über einer Zuordnungstabelle aufgelöst werden sollen.

BTW: Hast du eine wirklich gute online oder offline Literaturempfehlung für SQL-Datenbanken im Allgemeinen und mySQL im Speziellen?

Viele Grüße
Thomas
 
Es müsste sich bei deinem Fall im eine ternäre Beziehung handeln. Versuch mal hilfe darüber mit Google zu suchen. Ist immer einfacher wenn man weis wonach man suchen muss :). Du solltest dann eine Menge Literatur (von Uni+FH) zu diesem Thema finden.

Ich habe ternäre Beziehungen immer gehasst, deswegen gebe ich da lieber keine Rat zu ;)
 
Zurück