Ringkasan dari apa yang saya lihat sejauh ini:
- Beberapa orang tidak suka mengalir sama sekali.
Hapus Berjenjang
- Penghapusan Kaskade mungkin masuk akal ketika semantik hubungan dapat melibatkan "adalah bagian dari eksklusif " deskripsi. Misalnya, catatan BarisPesanan adalah bagian dari pesanan induknya, dan BarisPesanan tidak akan pernah dibagikan di antara beberapa pesanan. Jika Pesanan menghilang, BarisPesanan juga harus, dan baris tanpa Pesanan akan menjadi masalah.
- Contoh kanonik untuk Cascade Delete adalah SomeObject dan SomeObjectItems, di mana tidak masuk akal jika record item pernah ada tanpa record utama yang sesuai.
- Anda harus tidak gunakan Penghapusan Kaskade jika Anda menyimpan riwayat atau menggunakan "penghapusan lunak/logis" di mana Anda hanya mengatur kolom bit yang dihapus ke 1/benar.
Pembaruan Berjenjang
- Pembaruan Berjenjang mungkin masuk akal bila Anda menggunakan kunci asli daripada kunci pengganti (kolom identitas/peningkatan otomatis) di seluruh tabel.
- Contoh kanonik untuk Pembaruan Kaskade adalah saat Anda memiliki kunci asing yang dapat diubah, seperti nama pengguna yang dapat diubah.
- Anda harus tidak gunakan Pembaruan Kaskade dengan kunci yang merupakan kolom Identitas/peningkatan otomatis.
- Pembaruan Berjenjang paling baik digunakan bersama dengan batasan unik.
Kapan Menggunakan Cascading
- Anda mungkin ingin mendapatkan konfirmasi kembali yang ekstra kuat dari pengguna sebelum mengizinkan operasi mengalir, tetapi itu tergantung pada aplikasi Anda.
- Cascading dapat menyebabkan masalah jika Anda salah mengatur kunci asing. Tapi Anda akan baik-baik saja jika Anda melakukannya dengan benar.
- Tidak bijaksana menggunakan cascading sebelum Anda memahaminya secara menyeluruh. Namun, ini adalah fitur yang berguna dan oleh karena itu perlu meluangkan waktu untuk memahaminya.