Basamaklı silme kullanmam. Niye ya? Çünkü bir hata yapmak çok kolay. İstemci açıkça silmek uygulamaları (ve FK kayıtlarını sevk silme gibi silinmesi için şartları yerine.) Aslında
gerektirecek çok daha güvenli, silme başına silindi olarak kayıtları işaretleme veya içine taşıyarak önlenebilir arşiv/tarih tabloları. SELECT
s yaklaşık (sadece% 10'dan daha az takdirde kullanılacak 'isDeleted = false
' bir dizin filtre uygulamak zorunda kalacak beri silindi olarak kayıtları işaretlenmesi durumunda
, o, silinen veri olarak işaretlenmiş nispi oranda bağlıdır Kayıtların RDBMS'ye bağlı olarak silinmiş olarak işaretlenir. Bu 2 senaryo
hangisini tercih edersiniz:
1) Geliştirici size gelir "Hey, bu işe yaramaz sil" diyor. İkiniz de ona bakıp, yanlışlıkla tüm masa içeriğini silmeye çalıştığını anlıyorsunuz. İkinizin de gülüşleri var ve yaptığınız şeye geri dönün.
2) Geliştirici size gelir ve koyunca "Yedeklerimiz var mı?" Diye sorar.
Olası çoğaltılabilir [Ne zaman/Neden SQL Server'da Cascading kullanmak için?] (Http://stackoverflow.com/questions/59297/when-why-to-use-cascading-in-sql-server). Ayrıca, diğer soruların cevaplarıyla çok daha fazla katılıyorum, ki buradakilerden oldukça farklı. –