Khóa ngoại xác định mối quan hệ cha - con giữa hai bảng. Khóa chính trong bảng mẹ là khóa ngoại trong tối đa n hàng của bảng con.
Bây giờ nếu khóa chính đó trong bảng mẹ được CẬP NHẬT, thì QUY TẮC CẬP NHẬT sẽ bắt đầu. Tất cả các hàng con cũng được cập nhật, được đặt thành NULL hoặc bất kỳ thứ gì. Tuy nhiên, phương pháp hay nhất là có khóa chính KHÔNG BAO GIỜ thay đổi (ID cố định hoặc thứ gì đó), vì vậy đó là quy tắc ít quan trọng hơn.
Điều quan trọng hơn là quy tắc XÓA - điều gì sẽ xảy ra nếu hàng mẹ bị xóa (ví dụ:Đơn hàng bị xóa)? Bạn cũng có thể xóa tất cả các hàng con (tất cả các mục hàng Đặt hàng) bằng CASCADE DELETE hoặc bạn có thể đặt khóa ngoại của chúng thành NULL (chúng không còn giá trị gốc nữa) - điều đó hoàn toàn tùy thuộc vào kịch bản cụ thể của bạn.
Trong trường hợp Dòng đặt hàng / đơn hàng, có thể hoàn toàn hữu ích nếu xóa các dòng đơn hàng khi đơn hàng hoàn chỉnh bị xóa, nhưng bạn có thể không muốn xóa một sản phẩm, chỉ vì một đơn hàng tham chiếu đến nó đã bị xóa - không có một câu trả lời ĐÚNG duy nhất - nó phụ thuộc vào tình huống và ứng dụng của bạn.
Marc