Fremdschlüssel auf Primärschlüssel der eigenen Tabelle

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Genau anderst herum:
Whisky Cola hat keinen Eintrag in FK. Dort also NULL
Whisky und Cola jeweils haben einen Eintrag "3" im FK (um bei deinen ID'S zu bleiben)

EDIT: Mir ist klar, das das Beispiel eigentlich Murks ist, da beim "Getränke"-Szenario du ja definitiv ein "m:m"-Szenario hast (Cola wird in Whisky Cola verwendet als auch in Cuba Libre).

Ich glaube das bessere Beispiel ist oben die "Geburtsstation im Krankenhaus" oder der PC-Laden.

Um das jetzt auch zu Ende bekommen:
FK auf PK der eigenen Tabelle ist ein gültiges und auch gängiges Verfahren in nur einer Datenbank-Tabelle eine Hierarchie-Struktur abzubilden.

Wie gesagt: In dem Code den du in Post 1 gezeigt hast, hat mich am meisten der ON DELETE CASCADE überrascht, aber dazu habe ich dir ja auch ein Beispiel genannt (PC-Laden)
 
Zuletzt bearbeitet:
Jetzt ist mir doch noch ein Szenario eingefallen:
"Vorgänger-Modell"/"Nachfolge-Modell"

Produkte
ID - Bezeichnung - FK
1 - Urmodell - NULL --> wird 6 Monate lang verkauft
2 - Nachfolger1 - 1 --> ID=1 gilt als veraltet, und wird mit ID=2 ersetzt. Hat wiederum eine Lebenszeit von 6 Monaten
3 - Nachfolger2 - 2 --> ID=2 gilt jetzt als veraltet und wird mit ID=3 ersetzt
usw.....


oder sowas (Buchladen)
ID - Bezeichnung - FK
1 - Bibel (lateinisch) - NULL
2 - Bibel (engl. Übersetzung) - 1
3 - Bibel (dt. Übersetzung) - 1
//ID=2 und ID=3 verweisen auf ID=1
4 - Bibel (schweizer Übersetzung) - 3 //verweist auf ID=3
5 - Bibel (US-engl. Übersetzung) - 2 //verweist auf ID=2
6 - Bibel (dt. Übersetzung - korrig. Fassung) - 1 //verweist auf ID=1

und der ON DELETE CASCADE hätte jetzt folgende Wirkung:
Wenn du entscheidest, die Bibel (lateinisch) zu löschen, weil du das eben nicht mehr im Buchladen verkaufen willst, fliegen alle anderen mit raus!
 
Zuletzt bearbeitet:
Okay. Wenngleich sich mir der Sinn erst jetzt so einigermaßen erschließt:
Das Beispiel ist, man höre und staune, der aktuellen Datenbank von Shopware6 genau so entnommen, wie ich es gepostet habe. Shopware6 ist mit dem PHP Framework Symfony geschrieben und derart konfus in allem, was mir jemals untergekommen ist. Unter der URL:
Wie ist das möglich...?
habe ich dbzgl. eine weitere Kuriosität gepostet. Danke für Deine Hilfe!
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge

Zurück