LIKE performanssız çalışır, id gibi kesin olan değerlerde kullanmak makul değildir. Uzak durmanızda fayda var bu tür işlemlerde.
Bu sorgu çalışmaz;
SELECT * FROM uye WHERE 1234 LIKE ,10,;
SQL syntax hatası fırlatır LIKE fonksiyonundan sonra virgül gelemez.
Yapacağınız işlemi düşünüyorum da tablo yapınız nasıl acaba.
Çünkü Kullanıcı ile Resim tabloları arasında many to many ilişki var.
Bu şu demek oluyor.
1 kullanıcı birden çok resim beğenebilir.
1 resim birden çok kullanıcı tarafından beğenilebilir.
Eğer bu tip bir yapınız varsa. resim tablonuz ile user tablosu arasında bir ara tablosu olmak zorundadır.
user_resim gibi ve bu tablo üzerinde user_id, resim_id ve begen gibi üç alan olmalı, begen tinyint(0,1) olmalı ve default değer 0 olmalı. 0 beğenilmedi anlamına gelmektedir, 1 ise beğendi.
user [M - 1] user_resim [1 - M] resim
bu tip database tablo dizaynında sorgunuz şu şekilde olmalı.
bu sorgu size begen değerini verecektir.
Şimdi iki durum daha var ve bunun içinde iki tablo arasında doğrudan iki ilişki daha tanımlamalısınız.
1. ilişki ;
user [1 - M] resim ; Bir kullanıcının beğendiği tüm resimleri bulmanızda faydalı olacaktır.
2. ilişki ;
user [M - 1] resim ; Bir resmi beğenen tüm kullanıcıları bulmanızda faydalı olacaktır.
Üç tablo ve üç ilişki ile user - resim ile ilgili tüm atraksiyonları alabilirsiniz.
Yukarıdaki iki ilişkiyi aslında üzerlerindeki yapı ile de yapabilirsiniz ama fazladan bir sorgu daha yapmanız demek oluyor ve yavaşlık anlamına gelir. Kısacası amacınıza göre sorguları ve ilişkileri kullanmalısınız ;)
Kolay gelsin.
NOT : Bu arada begendi olarak aklımda kalmış hep soru, siz gördü şeklinde düşünebilirsiniz.
Bu sorgu çalışmaz;
SELECT * FROM uye WHERE 1234 LIKE ,10,;
SQL syntax hatası fırlatır LIKE fonksiyonundan sonra virgül gelemez.
Yapacağınız işlemi düşünüyorum da tablo yapınız nasıl acaba.
Çünkü Kullanıcı ile Resim tabloları arasında many to many ilişki var.
Bu şu demek oluyor.
1 kullanıcı birden çok resim beğenebilir.
1 resim birden çok kullanıcı tarafından beğenilebilir.
Eğer bu tip bir yapınız varsa. resim tablonuz ile user tablosu arasında bir ara tablosu olmak zorundadır.
user_resim gibi ve bu tablo üzerinde user_id, resim_id ve begen gibi üç alan olmalı, begen tinyint(0,1) olmalı ve default değer 0 olmalı. 0 beğenilmedi anlamına gelmektedir, 1 ise beğendi.
user [M - 1] user_resim [1 - M] resim
bu tip database tablo dizaynında sorgunuz şu şekilde olmalı.
bu sorgu size begen değerini verecektir.
Şimdi iki durum daha var ve bunun içinde iki tablo arasında doğrudan iki ilişki daha tanımlamalısınız.
1. ilişki ;
user [1 - M] resim ; Bir kullanıcının beğendiği tüm resimleri bulmanızda faydalı olacaktır.
2. ilişki ;
user [M - 1] resim ; Bir resmi beğenen tüm kullanıcıları bulmanızda faydalı olacaktır.
Üç tablo ve üç ilişki ile user - resim ile ilgili tüm atraksiyonları alabilirsiniz.
Yukarıdaki iki ilişkiyi aslında üzerlerindeki yapı ile de yapabilirsiniz ama fazladan bir sorgu daha yapmanız demek oluyor ve yavaşlık anlamına gelir. Kısacası amacınıza göre sorguları ve ilişkileri kullanmalısınız ;)
Kolay gelsin.
NOT : Bu arada begendi olarak aklımda kalmış hep soru, siz gördü şeklinde düşünebilirsiniz.
Elinize sağlık hepsini anladım fakat daha önce tinyint kullanmadım
Değerleri tinyint nasıl kaydetmeliyim aradaki virgül ve sql komutu nasıl olmalı kayıt için?