[MySQL] DB-Schema: Tabelle wird von anderen referenziert, wie korrekt löschen?

DarthShader

Erfahrenes Mitglied
Hallo,

ich habe eine Frage bezüglich eines DB-Schemas, was jetzt mehr allgemein gehalten ist, aber sicherlich aufgrund der Constraints auch MySQL-speziell sein kann:

Folgende Situation:

  • Ich habe (exemplarisch) 3 Tabellen: eine "Adressen"-Tabelle sowie eine "Equipment" und eine "Fahrzeug"-Tabelle.
  • Nun kann es sein, dass sich ein "Equipment" und "Fahrzeug" dieselbe Adresse teilen, d.h. "Equipment" und "Fahrzeug" haben jeweils die Spalte "standort", welche die ID eines Datensatzes aus "Adressen" hat (beide befinden sich sozusagen am selben Standort, verweisen also auf denselben Datensatz in der "Adressen" Tabelle)
  • Die "Adressen" Tabelle weiß in diesem Schema also nicht, von wem sie referenziert wird (was ich natürlich ändern kann, wenn das der Vorschlag ist, siehe die Frage unten).

Wenn ich eine Adresse lösche, die von mehreren anderen Tabellen referenziert wird (also z.b. von "Equipment" und von "Fahrzeug"), dann verweisen die IDs in den "standort" Spalten ja auf einen Datensatz, den es nicht mehr gibt. Ich muss also irgendwie erreichen, dass die Referenzen (die IDs in der Spalte "standort" der Tabellen "Equipment" und "Fahrzeug") ebenfalls gelöscht, also null-gesetzt werden.

Wie macht man sowas im Allgemeinen, bzw. wie macht man dies am besten in MySQL? Gibt es dafür "eingebaute" Constraints, muss man mit einer Zwischen-Tabelle arbeiten?


Ich würde mich über Eure Hilfe sehr freuen


Vielen Dank!
 
Zurück