Nie projektuję schematów codziennie, ale kiedy to robię, próbuję poprawnie skonfigurować aktualizacje kaskadowe / usunąć, aby ułatwić administrację. Rozumiem, jak działają kaskady, ale nigdy nie pamiętam, który stół jest który.
Na przykład, jeśli mam dwie tabele - Parent
i Child
- z kluczem obcym do Child
tych referencji Parent
i ma ON DELETE CASCADE
, które rekordy wyzwalają kaskadę, a które rekordy są kasowane? Moim pierwszym przypuszczeniem byłoby, że Child
rekordy zostaną usunięte po Parent
ich usunięciu, ponieważ Child
rekordy zależą od Parent
akt, ale ON DELETE
jest to niejednoznaczne; może to oznaczać usunięcie Parent
rekordu po jego Child
usunięciu lub może oznaczać usunięcie Child
rekordu po jego Parent
usunięciu. Więc co to jest?
Chciałbym, aby składnia była ON PARENT DELETE, CASCADE
, ON FOREIGN DELETE, CASCADE
lub coś podobnego, aby usunąć dwuznaczność. Czy ktoś ma jakieś mnemoniki, żeby o tym pamiętać?