Saya mungkin berpikiran sempit, tetapi jika saya membuat batasan kunci asing dan baris diperbarui atau dihapus, saya kehilangan koneksi itu jika kolom tabel anak diatur ke NULL.
Apa tujuan menjaga barisan yatim ini dengan sengaja?
Saya mungkin berpikiran sempit, tetapi jika saya membuat batasan kunci asing dan baris diperbarui atau dihapus, saya kehilangan koneksi itu jika kolom tabel anak diatur ke NULL.
Apa tujuan menjaga barisan yatim ini dengan sengaja?
Jawaban:
Apakah set null
berguna atau tidak tergantung pada apa yang Anda pilih null
untuk maksud dalam konteks tertentu - dengan semua kebingungan dan pendapat tentang null
IMO pendekatan yang masuk akal adalah untuk DBA untuk
Dengan aturan itu, pertimbangkan kasus penggunaan berikut:
null
untuk mewakili toko independen (yaitu toko yang bukan bagian dari rantai)Dalam hal ini, suatu yang on delete set null
masuk akal. Ada cara lain untuk memodelkan aturan bisnis ini, tetapi ini adalah yang paling sederhana dan jika itu secara akurat sesuai dengan fakta yang Anda pedulikan di dunia nyata, saya sarankan itu sangat oke
Sebagian besar kasus penggunaan yang dapat saya pikirkan umumnya adalah dalam bentuk "Yah, kita bisa melakukan sesuatu yang berbeda tetapi kami merasa ingin melakukan ini sebagai gantinya".
Pertimbangkan owner
bidang bug di sistem pelacakan masalah di perusahaan. Jika John berhenti, pasti semua masalahnya tidak boleh hanya dihapus ketika akunnya dihapus. Meski begitu, beberapa database memungkinkan SET DEFAULT
sebagai tindakan (atau memiliki pemicu melakukan tugas yang sama), dan menjadikan Nobody
karyawan sebagai pemilik default masalah dapat menjadi pilihan. Atau kita bisa memiliki disabled
bidang untuk John daripada menghapus catatannya.
RESTRICT
), jika tidak ada alasan lain untuk menunjukkan kesalahan kepada karyawan lama ketika ada yang salah dengan itu!