Hallo zusammen,
Mal sehen, ob ich dich richtig verstanden habe...
ich will eine Preisliste erstellen, die im Prinzip wie eine (echte) Tabelle aussieht. Dabei soll in den Spalten die "Breite" und in den Zeilen die "Höhe" der Produkte erscheinen.
Es gibt also eine festgelegte Anzahl Werte für "Breite" und für "Höhe". Sprich: Eine Tabelle mit x Breiten und eine mit y Höhen. Diese Werte betrachten wir der Einfachkeit halber erst einmal als unveränderlich, das heißt es kommen keine hinzu oder fallen weg.
Tabelle: breite - Felder: id, wert
Tabelle: hoehe - Felder: id, wert
Warum legt man in relationalen Datenbanken immer ein "Zwischentabelle" an?
Nun gibt es eine Verknüpfung zwischen einzelnen Breiten und Höhen. Dafür brauchst du eine weitere Tabelle. In einer "echten" Tabelle gibt es quasi für jedes x und jedes y einen Schnittpunkt (ein Feld). Eine Datenbank ist da flexibler, da es nur für die interessierenden Schnittpunkte Datensätze gibt.
In meinem Beispiel würde dann nicht der Bezug auf breite.id und hoehe.id in der preise tabelle stehen, sondern in einer verbindungstabelle:
Im Falle von Preisen würde ich die gleich in die Verknüpfungstabelle schreiben.
Tabelle: preise - Felder: id, id_breite, id_hoehe, preis
Abstrakter ausgedrückt: Wenn die Schnittpunkt-Werte untereinander keine grundsätzlichen Gemeinsamkeiten haben (zufällig gleiche Werte zählen nicht dazu), können die gleich in die Tabelle rein.
Würde es sich um Objekte mit weiteren Eigenschaften handeln, wo ein und das selbe Objekt (mit den gleichen Eigenschaftswerten) mehrfach im Kreuzgitter auftreten kann, dann würde ich das in eine weitere Tabelle schreiben und stattdessen nur einen Verweis (dessen ID) in die Verknüpfungstabelle eintragen.