C#'ta SQL ile Ticari yönetimi programını kodluyorum
İlişkili Kategoriler ve Ürünler tablolarına sahibim
OnDelete sütununu False True yaparak verileri siliyorum (ilgili tablolardaki veriler silinemediği için)
Diyelim ki Kategoriler tablosundan içecekler kategorisini True yaparak sildim, o kategoriyi 1 ay sonra tekrar eklemek istersem bu sefer id otomatik olarak artacak yani ilişkili olduğu tablolardaki ID değerleri bozulacak. 1 ay öncesi ve sonrası ürünler aynı kategoriye sahip olacak ancak id'leri farklı olacaktır.
Bu Programı kullanacak olan son kullanıcılar bilgisayardan hiç anlamayanlar olacak
en basit şekilde bile bu aslında silinmiyor sildiğiniz veriyi sonradan yeniden eklemek istiyorsanız silinenler formundan etkinleştirmeniz gerekiyor desem bozacaklar programı
SQL Server'da Set Default ile 0 id atayacağım, bu sefer hangi ürünün hangi kategoriye ait olduğu belli olmayacak.
Başka bir örnek vereyim, personeliniz işten ayrıldı ve ilgili personelin verilerini veri tabanından silmek yerine "OnDelete" sütununu güncelleyip "True" değerini atadınız. Bir süre sonra aynı personeli tekrar işe aldınız ve varsayalım ki hiç SQL bilmiyorsunuz ve sadece butonlara basarak programı kontrol ediyorsunuz, doğal olarak ilgili personeli tekrar veritabanına kaydedeceksiniz. id değeri otomatik olarak arttığı için aynı personele ait biri silinmiş diğeri yeni eklenen 2 adet kayıt olacaktır. İlgili personelin hangi satışları yaptığını görmek istediğinizde artık yeni id ile sorgulamamız gerekecek.