folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanından Veri Silmek Mantıklı Mıdır ?



Veritabanından Veri Silmek Mantıklı Mıdır ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocalarım şimdi bir soru soracağım. Bu zamana kadar hiç VT den veri silmedim en gereksiz tabloda bile. Genelde hep en sona isDeleted diye bir alan ekleyip boolean atıyorum. Sorgularımda da hep isDeleted=0 ekliyorum şart olarak. Bana Eksi olarak Sorgu süresi katıyor. Şimdi aklımda bir kaç saçma düşünce var 

    * isDeleted koyduğumda zaten hiçbir veriyi silmiyorum 

    * Veritabanında hiçbir veri silinmiyor ise Trigger mantığına gerek var mı ? Trigger da çünkü Delete Select Insert işlemlerini Log altında tutmaya yarıyor (ben onun için kullanıyorum başka yapılarda kullanılıyor olabilir). Zaten Delete işlemi olmuyor. VT den giden herhangi bir veri olmadığı için neden Trigger yapayım ?

    * Sorgu süresini Trigger mi daha cok etki eder yoksa isDeleted olarak koyduğum alan mı ?

    * Yaptığım iş saçma mıdır ? isDeleted koymak yani.

    * Siz neler yapıyorsunuz ?

    * Trigger ile Tablodan Işlem Tipi (Ekle Sil Güncelle ) , Açıklama (Ahmet Adlı User Veritabanından silindi) , Tarih ekledik diyelim burda silinen tüm satırı tutamıyoruz yani isDeleted muhabbeti daha iyi değil midir ?

    *Trigger koyarsam Log tablosu şişecek isDeleted koyarsam Çeşiktli tablolar şişecek. Buda bir etken Ne yapmam gerekiyor Yardımcı olabilecek biri ?

    MhmdAlmz tarafından 26/Ağu/16 17:46 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Hocam sorgularını optimize etmeyi denedin mi?


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    Database'in tasarım esnasında zaten dikkat edilen unsurlardan bir tanesi gereksiz veri tekrarının önüne geçmektir. Buradan anlayacağımız üzere database içerisini nekadar temiz tutarsak okadar iyi. 

    Bahsettiğin şey senaryoya göre değişebilen bir şey.  

    x firmasının bir otomasyonunda her kullanıcının giriş ve işlem yetkisi olsun. Ali 1 senelik x firmasının çalışanı ve toplamda 5000 tane iş yürütmüş otomasyon üzerinde. Ali işten çıktığında otomasyon üzerinden kullanıcı silmek doğru bir seçenek olmaz. Çünkü yetkili abiler o 5000 tane işten rapor almak istediğinde o işi kim yapmış,nekadar zaman harcamış,neler yapılmış görmek ister. Bu durumda ali'yi pasif konuma çeker raporlarına doğru bir şekilde devam edersin. 

    Ama aynı örnek üzerinden gidelim (otomasyon üzerinde güncelleme seçeneği olmadığını farz ediyorum) mehmet isimli çalışan işe giriyor sen bu adamın kaydını yaparken sisteme mehmet değilde memet yazmışsın. Bu kaydı sistemden komple silmen gerekiyor. Hiç kullanmayacağın bir datanın database içerisinde durmasının hiç bir gereği yok.

    Data sayın az iken farketmeyebilirsin fakat data sayısı arttıkça o fazlalıklar kendini hissettirecektir.

    Trigger olayına gelirsek tam ne için kullanıcağını anlamadım. Bir çok amaçla kullanılan bir yapıdır. Log tablosunun şişmesinde bir sakınca yok zaten database'in amaçı data tutmak. Sen log tablosu üzerinde sorgulamalarını yaparken tüm tabloyu çekmektense belirli tarih aralıklarını filtereyerek veya pagination yaparak sorgularını hafifletebilirsin.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Böcüklerin Efendisi
    krypt
    krypt's avatar
    Kayıt Tarihi: 05/Mart/2004
    Erkek

    Paran yoksa mantıklıdır.


    while (1<2)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    @TeRRoR Hocam Sorguları optimize ediyorum her seferinde sıkıntı yok onda Tüm kriterleri ekleyerek sorgu yapıyorum hocam zaten

    @FCN Amaç şu hocam Piyasada yıllarını veren çok kişi var. Anlamak istediğim şu Neye göre Log tablosuna veri ekleriz neye göre tabloda aktiflik durumunu değiştirmemiz idi. Şu işten çıkma olayı vs. Anlattığında anladığım kadarıyla Birbirleri ile entegreli şekilde çalışan yapıları silmek yerine pasif etmek daha mantıklı örneğin ; Büyük bir firmanın 20 ye yakın bayii olsun. Herhangi biri kapandığında Onu silmek yerine Aktiflik durumunu değiştirmek Sorgulardaki hem hataları önleyecek hemde veritabanındaki ilişkili veriler yok olmayacak. Ama ufak tefek çerez sayılacak verileri yani ilişkileri olmayan en ufak dalları sildikten sonra Log tablosunda tutabiliriz. Güzel bi düşünce teşekkürler

    @KrypT , Öğrenciysek olmuyor mu ? :/


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    swalker
    swalker's avatar
    Kayıt Tarihi: 22/Mart/2012
    Erkek

    Hocam eğer çok büyük bir database değilse, sorgu süresinin uzaması trafik olarak servera binen yükü arttırmıyorsa yaptığın işlem doğrudur. Tembel silme işlemi denir ona. Ama eğer, tasarım düzgün yapıldıysa, bir row silindiği zaman önemli veri kaybetmiyorsan, yani tabloları düzgün şekilde ayırdıysan silmek sorun yaratmaz.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    İlerde bi işine yaramayacak datayı veritabanında tutmanın mantığı yoktur.

    Yanlışlıkla silinmenin önüne geçmek istiyorum diyorsan da ay başında çift yönlü backup alıp komple kaldırabilirsin.

    Adam facebook da "Bugün kebap yapıyorussss" diye paylaşıp sonra bunu silmiş. Bunu db de tutsan ne tutmasan ne ?

    Ekstra maliyetten başka birşey getirmez, önemli olan senaryo. Herşey şöyledir herşey böyledir denemez.


    Hello, i am nothing. I come from Neverland.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Anladım zaten herkes aynı şeyi söylüyor . Mantığı az çok kavradım gibi veri büyük değilse sil gitsin (Log'la) .


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 995 Toplam Mesaj: 8
vtys