Shrnutí toho, co jsem zatím viděl:
- Někteří lidé nemají kaskádování vůbec rádi.
Kaskádové odstranění
- Cascade Delete může mít smysl, když sémantika vztahu může zahrnovat exkluzivní "je součástí Například záznam OrderLine je součástí jeho nadřazené objednávky a OrderLine nebudou nikdy sdíleny mezi více objednávkami. Pokud by objednávka zmizela, OrderLine by měl také a řádek bez objednávky by byl problém.
- Kanonickým příkladem Cascade Delete je SomeObject a SomeObjectItems, kde nedává žádný smysl, aby záznam položek kdy existoval bez odpovídajícího hlavního záznamu.
- To byste neměli použijte Cascade Delete, pokud zachováváte historii nebo používáte "soft/logické mazání", kde pouze nastavujete odstraněný bitový sloupec na 1/true.
Kaskádová aktualizace
- Kaskádová aktualizace může mít smysl, když v tabulkách používáte skutečný klíč namísto náhradního klíče (sloupec identity/autoinkrementace).
- Kanonickým příkladem kaskádové aktualizace je situace, kdy máte měnitelný cizí klíč, jako je uživatelské jméno, které lze změnit.
- To byste neměli použijte kaskádovou aktualizaci s klíči, které jsou sloupce Identity/autoincrement.
- Kaskádová aktualizace se nejlépe používá ve spojení s jedinečným omezením.
Kdy použít kaskádování
- Před povolením kaskádování operace můžete od uživatele získat extra silné potvrzení, ale záleží na vaší aplikaci.
- Pokud cizí klíče nastavíte špatně, kaskádové řazení vás může dostat do problémů. Ale měli byste být v pořádku, pokud to uděláte správně.
- Není moudré používat kaskádování, dokud tomu důkladně neporozumíte. Je to však užitečná funkce, a proto stojí za to věnovat čas jejímu pochopení.