Ich entwerfe nicht jeden Tag Schemata, aber wenn ich das tue, versuche ich, Kaskadenaktualisierungen / -löschungen korrekt einzurichten, um die Verwaltung zu vereinfachen. Ich verstehe, wie Kaskaden funktionieren, aber ich kann mich nie erinnern, welcher Tisch welcher ist.
Wenn ich zum Beispiel zwei Tabellen habe - Parentund Child- mit einem Fremdschlüssel auf Childdiesen Referenzen Parentund ON DELETE CASCADEwelche Datensätze lösen eine Kaskade aus und welche Datensätze werden von der Kaskade gelöscht? Meine erste Vermutung wäre, dass die ChildDatensätze gelöscht werden, wenn ParentDatensätze gelöscht werden, da ChildDatensätze von Datensätzen abhängen Parent, aber das ON DELETEist mehrdeutig; es könnte das bedeuten löschen ParentDatensatz , wenn der ChildDatensatz gelöscht wird, oder es könnte das bedeuten löschen ChildDatensatz , wenn die Parentgelöscht wird. Also was ist es?
Ich wünschte, die Syntax wäre ON PARENT DELETE, CASCADE, ON FOREIGN DELETE, CASCADEoder etwas ähnliches, um die Mehrdeutigkeit zu beseitigen. Hat jemand irgendwelche Mnemonics, um sich daran zu erinnern?