Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kapan/Mengapa menggunakan Cascading di SQL Server?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci Utama di SQL Server

  2. Menghubungkan SQL Server ke Database Java

  3. SQL Server 2008 Baris Sisipkan dan Perbarui stempel waktu

  4. Bagaimana cara melewatkan parameter Bernilai Tabel dari java ke prosedur tersimpan server sql?

  5. Perbaiki "SQL Server memblokir akses ke PERNYATAAN 'OpenRowset/OpenDatasource' dari komponen 'Kueri Terdistribusi Ad Hoc"