Fabienne: dynamische Preisliste mit Versionsnummer

Beitrag lesen

Hallo zusammen,

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. Als weiteres Merkmal wird diese Tabelle aber mehrmals durch eine zentrale Instanz (Chef!!)aktualisiert, wobei evtl. einige Spalten oder Höhen herausfallen können, sprich aus dem Sortiment genommen werden. ABER: Die bestehenden Preislisten für die Kunden sind immer auf ein Jahr festgelegt => d.h. die man darf auf keinen Fall aus der Datenbank die HÖHE x rauslöschen.

Meine Idee:
in ner DB:

  • Tabelle breite mit den Breiten-Angaben und einem Feld aktiv/inaktiv und einer autoinkrement id

  • Tabelle hoehe mit den Höhen-Angaben und einem Feld aktiv/inaktiv und einer autoinkrement id

  • Tabelle preise mit Bezug auf breite.id und hoehe.id, wobei bei der erstellung der jeweiligen Preisliste die jeweils gültigen/aktiven Elemente zur Auswahl stehen und einer autoinkrement id.

Soweit so gut.

Warum legt man in relationalen Datenbanken immer ein "Zwischentabelle" an?
In meinem Beispiel würde dann nicht der Bezug auf breite.id und hoehe.id in der preise tabelle stehen, sondern in einer verbindungstabelle:

verbindungstabelle:  autoinkrement id | preis.id | breite.id  | hoehe.id

Warum ist das so? Ich finde das umständlich, lasse mich aber gerne eines besseren belehren!

Danke!