• 17-01-2014, 01:09:19
    #1
    Arkadaşlar başlıktan da anlaşılacağı gibi veritabanında benzersiz değer atamak için sizce yapıyı UNIQUE olarak mı seçip işlem yapmalıyım yoksa her işlemde php kontrolü ile kayıt mı yürütmeliyim

    Ek olarak UNIQUE kullanımnın dez avantajları hakkında detaylı bilgisi olanlar paylaşabilirse çok sevinirim.

    Cevaplar için şimdiden teşekkürler..
  • 17-01-2014, 01:12:27
    #2
    hocam bildiğim kadarıyla unique bir değer olmadan sorun çıkabiliyor bazen hata verebiliyor.Unique değeri php ilede yapsanız mysql ilede yapsanız aynı sorguları çalıştıracağınız kanaatindeyim yani bir dezavantajı olduğunu düşünmüyorum, tabiki bu benim fikrim...
  • 17-01-2014, 01:14:51
    #3
    RooTsGhosT adlı üyeden alıntı: mesajı görüntüle
    hocam bildiğim kadarıyla unique bir değer olmadan sorun çıkabiliyor bazen hata verebiliyor.Unique değeri php ilede yapsanız mysql ilede yapsanız aynı sorguları çalıştıracağınız kanaatindeyim yani bir dezavantajı olduğunu düşünmüyorum, tabiki bu benim fikrim...
    Cevabınız için teşekkür ederim hocam, ben kayıtlarda boş olmaması ve benzersiz olması için yinede sorgularımı sıkı tutacağım ama kuracağım sistem kullanıcı modüllü bir sistem olacak ve diğer kullanıcıların yapıyı dağıtmalarından korkuyorum Unique kullanmak istememdeki amaç aslında bu. Yani istesede eşdeğer bir kayıt girişi yapmasını engellemek istiyorum ama performans/dbboyutu/sorgu süreleri gibi işlemlerde bir dezavantaj yaratırmı bunu öğrenmek amacım..
  • 17-01-2014, 01:15:41
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Php ile yaparsaniz kontrol etmeniz icin bir sorgu daha yazmaniz gerekecektir. Eger mysqlden unique secerseniz ilgili alani, bu sefer sorgu basarili olsa bile o degerden bir tane daha oldugu icin sorgu calismayacaktir. Bu durumda kullaniciya genel bir hata mesaji dondurebilirsiniz.

    Eger cok kullanilacak bir islem degil ise php ile kontrol yapin. Bu sekilde eger unique kayittan varsa dbde, kullaniciya da boyle bir kayit var gibi daha aciklayici bir hata mji verebilirsiniz

    U8860 cihazımdan Tapatalk kullanılarak gönderildi
  • 17-01-2014, 01:17:36
    #5
    Big_Turk adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkür ederim hocam, ben kayıtlarda boş olmaması ve benzersiz olması için yinede sorgularımı sıkı tutacağım ama kuracağım sistem kullanıcı modüllü bir sistem olacak ve diğer kullanıcıların yapıyı dağıtmalarından korkuyorum Unique kullanmak istememdeki amaç aslında bu. Yani istesede eşdeğer bir kayıt girişi yapmasını engellemek istiyorum ama performans/dbboyutu/sorgu süreleri gibi işlemlerde bir dezavantaj yaratırmı bunu öğrenmek amacım..
    hocam o zaman sadece id yi değilde unique olmasını istediğiniz başka alanlar var ise id yerine onları sorgularsanız daha iyi olur bence zaten unique olarak eklediğini değerin tekrarlanma ihtimali yoktur.Tekrarlanma ihtimalinde kayıt yapılmaz...
  • 17-01-2014, 01:22:56
    #6
    kaptanblack adlı üyeden alıntı: mesajı görüntüle
    Php ile yaparsaniz kontrol etmeniz icin bir sorgu daha yazmaniz gerekecektir. Eger mysqlden unique secerseniz ilgili alani, bu sefer sorgu basarili olsa bile o degerden bir tane daha oldugu icin sorgu calismayacaktir. Bu durumda kullaniciya genel bir hata mesaji dondurebilirsiniz.

    Eger cok kullanilacak bir islem degil ise php ile kontrol yapin. Bu sekilde eger unique kayittan varsa dbde, kullaniciya da boyle bir kayit var gibi daha aciklayici bir hata mji verebilirsiniz

    U8860 cihazımdan Tapatalk kullanılarak gönderildi
    RooTsGhosT adlı üyeden alıntı: mesajı görüntüle
    hocam o zaman sadece id yi değilde unique olmasını istediğiniz başka alanlar var ise id yerine onları sorgularsanız daha iyi olur bence zaten unique olarak eklediğini değerin tekrarlanma ihtimali yoktur.Tekrarlanma ihtimalinde kayıt yapılmaz...

    Aslında konuyu biraz eksik açtım asıl mantık şu şekilde,

    bir ayarlar tablosu düşünün sistemin tüm ayarları bu tablo üzerinden okunacak,

    ayar ismi kısmını unique olarak belirlemek istiyorum yani, site_ismi şeklinde bir ayar verdiğimde kullanıcı sisteme kendi modülünü dahil ettiğinde yada bir sorgu çalıştırdığında 2. kez site_ismi şeklinde bir değer girememeli..

    Bunu unique ile çok güzel çözüyorum , unique kullanmadan da kullanıcıya ayar_kaydet isminde bir fonksiyon verip ayarı bunun üzerinden güncellemesi/eklemesi için yine benim kontrolümde olan bir işlem sunuyorum buraya kadar yapıda bozulma olmayacak ama tutarda insert_post ile giriş yaparsa unique ile engellemek istiyorum.

    Burda asıl soru şu unique kullanmam performans/dbboyutu/sorgu süreleri gibi işlemlerde bir dezavantaj yaratırmı ?
  • 17-01-2014, 01:26:02
    #7
    Hayir performans acisindan bir sorun teskil etmez.

    U8860 cihazımdan Tapatalk kullanılarak gönderildi