Non progetto schemi ogni giorno, ma quando lo faccio, provo a configurare correttamente gli aggiornamenti / eliminazioni in cascata per semplificare l'amministrazione. Capisco come funzionano le cascate, ma non riesco mai a ricordare quale tavolo sia quale.
Ad esempio, se ho due tabelle - Parent
e Child
- con una chiave esterna su Child
quei riferimenti Parent
e ha ON DELETE CASCADE
, quali record attivano una cascata e quali record vengono eliminati dalla cascata? La mia prima ipotesi sarebbe che i Child
record vengano eliminati quando i Parent
record vengono eliminati, poiché i Child
record dipendono dai Parent
record, ma ON DELETE
è ambiguo; potrebbe significare eliminare il Parent
record quando il Child
record viene eliminato, oppure potrebbe significare eliminare il Child
record quando Parent
viene eliminato. Quindi che cos'è?
Vorrei che la sintassi era ON PARENT DELETE, CASCADE
, ON FOREIGN DELETE, CASCADE
o qualcosa di simile per rimuovere l'ambiguità. Qualcuno ha qualche mnemonica per ricordare questo?