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

Трябва ли да използвам правилото CASCADE DELETE?

ON DELETE CASCADE е добре, но само когато зависимите редове наистина са логическо разширение на реда, който се изтрива. Например, добре е за DELETE ORDERS да изтриете свързаните ORDER_LINES, защото очевидно искате да изтриете тази поръчка, която се състои от заглавка и няколко реда. От друга страна, DELETE CUSTOMER не трябва да изтрива свързаните ПОРЪЧКИ, защото ПОРЪЧКИТЕ са важни сами по себе си, те не са просто атрибути на клиент.

Един от начините да мисля за това е:ако издам DELETE X и той също изтрие Y, ще бъда ли щастлив или нещастен? И ако издам DELETE X и ми кажат „не мога да изтрия X, защото Y съществува“, ще се радвам ли на защитата или ще се раздразня от неудобството?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пример за CTE и рекурсия на SQL Server

  2. как да конфигурирате конфигурационния файл за хибернация за sql сървър

  3. Производителност INNER JOIN срещу LEFT JOIN в SQL Server

  4. Кой е най-добрият начин за създаване и попълване на таблица с числа?

  5. Шаблон за проектиране за персонализирани полета в релационна база данни