Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Кога/Защо да използвам каскадиране в SQL Server?

Обобщение на това, което видях досега:

  • Някои хора изобщо не харесват каскада.

Каскадно изтриване

  • Каскадно изтриване може да има смисъл, когато семантиката на връзката може да включва изключителна „е част от " описание. Например записът OrderLine е част от неговата родителска поръчка и OrderLines никога няма да бъде споделен между множество поръчки. Ако поръчката изчезне, OrderLine също би трябвало, а ред без поръчка би бил проблем.
  • Каноничният пример за Cascade Delete е SomeObject и SomeObjectItems, където няма никакъв смисъл запис на елементи да съществува някога без съответен основен запис.
  • Не трябва да не използвайте Cascade Delete, ако запазвате хронологията или използвате "меко/логическо изтриване", където задавате само изтрита битова колона на 1/true.

Каскадна актуализация

  • Каскадното актуализиране може да има смисъл, когато използвате реален ключ, а не сурогатен ключ (колона за идентичност/автоматично увеличаване) в таблиците.
  • Каноничният пример за каскадна актуализация е, когато имате променлив външен ключ, като потребителско име, което може да бъде променено.
  • Не трябва да не използвайте каскадна актуализация с ключове, които са колони за идентичност/автоматично увеличаване.
  • Каскадната актуализация се използва най-добре във връзка с уникално ограничение.

Кога да се използва каскадиране

  • Може да искате да получите обратно силно потвърждение от потребителя, преди да разрешите каскадна операция, но това зависи от вашето приложение.
  • Каскадирането може да ви създаде проблеми, ако настроите външните си ключове погрешно. Но трябва да сте добре, ако го направите правилно.
  • Не е разумно да използвате каскадно, преди да сте го разбрали напълно. Въпреки това, това е полезна функция и затова си струва да отделите време, за да разберете.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте база данни в SQL Server (T-SQL)

  2. Как да АКТУАЛИЗИРАТЕ от SELECT в SQL Server

  3. Как да нулирате стойността на колоната за идентичност в таблицата на SQL Server - SQL Server / T-SQL урок, част 43

  4. Стойностите на колоната за идентичност на SQL сървъра започват от 0 вместо от 1

  5. Какво е базата данни, защо база данни?