sql >> Databasteknik >  >> RDS >> Sqlserver

Ska jag använda CASCADE DELETE-regeln?

ON DELETE CASCADE är bra, men bara när de beroende raderna verkligen är en logisk förlängning av raden som raderas. Till exempel är det OK för DELETE ORDERS att ta bort de associerade ORDER_LINES eftersom du helt klart vill ta bort denna order, som består av en rubrik och några rader. Å andra sidan bör DELETE CUSTOMER inte ta bort de associerade BESTÄLLNINGAR eftersom BESTÄLLNINGAR är viktiga i sig själva, de är inte bara attribut för en kund.

Ett sätt att tänka på detta är:om jag utfärdar DELETE X och det också tar bort Y, blir jag glad eller olycklig? Och om jag utfärdar DELETE X och får höra "kan inte ta bort X eftersom Y finns" kommer jag att vara glad över skyddet, eller irriterad över besväret?



  1. 2 sätt att returnera servernamnet i SQL Server (T-SQL)

  2. Returnera alla möjliga kombinationer av värden på kolumner i SQL

  3. Frågefel med tvetydigt kolumnnamn i SQL

  4. Var man kan ladda ner Runtime Kit för Microsoft Access 2016