Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tôi có nên sử dụng quy tắc CASCADE DELETE không?

ON DELETE CASCADE là tốt, nhưng chỉ khi các hàng phụ thuộc thực sự là một phần mở rộng hợp lý của hàng đang bị xóa. Ví dụ:việc XÓA ĐƠN HÀNG có thể xóa các ORDER_LINES được liên kết vì rõ ràng bạn muốn xóa đơn hàng này, bao gồm tiêu đề và một số dòng. Mặt khác, XÓA KHÁCH HÀNG không nên xóa ĐƠN HÀNG được liên kết vì ĐƠN HÀNG quan trọng theo đúng nghĩa của họ, chúng không chỉ là thuộc tính của khách hàng.

Một cách để suy nghĩ về điều này là:nếu tôi đưa ra XÓA X và nó cũng xóa Y, tôi sẽ hạnh phúc hay không vui? Và nếu tôi đưa ra XÓA X và được thông báo "không thể xóa X vì Y tồn tại", tôi sẽ vui mừng vì sự bảo vệ này hay bực mình vì sự bất tiện nà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. Cách sử dụng biến bảng trong câu lệnh sql động?

  2. Cách xác định số là số thực hay số nguyên

  3. Cách thực hiện liên kết bên trong trên số hàng trong máy chủ sql

  4. Cấp quyền truy cập người dùng msdb vào hồ sơ thư cơ sở dữ liệu trong SQL Server (T-SQL)

  5. Hướng dẫn cơ sở dữ liệu SQL Server (MSSQL DBA) cho người mới bắt đầu quản trị cơ sở dữ liệu