Kunci asing mendefinisikan hubungan induk - anak antara dua tabel. Kunci utama di tabel induk adalah kunci asing di hingga n baris tabel anak.
Sekarang jika kunci utama di tabel induk mendapat UPDATE, ATURAN UPDATE akan dimulai. Semua baris anak juga diperbarui, disetel ke NULL atau apa pun. Namun praktik terbaik adalah memiliki kunci utama yang TIDAK PERNAH berubah (ID tetap atau semacamnya), jadi itu aturan yang kurang penting.
Yang lebih penting adalah aturan DELETE - bagaimana jika baris induk dihapus (misalnya Order dihapus)? Anda juga dapat menghapus semua baris anak (semua item baris Pesanan) dengan CASCADE DELETE, atau Anda dapat menyetel kunci asingnya ke NULL (mereka tidak memiliki induk lagi) - itu sepenuhnya terserah skenario konkret Anda.
Dalam skenario Pesanan/baris pesanan, mungkin sangat berguna untuk menghapus baris pesanan ketika pesanan lengkap dihapus, tetapi Anda mungkin tidak ingin menghapus produk, hanya karena pesanan yang merujuknya telah dihapus - tidak ada satu jawaban BENAR - itu tergantung pada skenario dan aplikasi Anda.
Marc