Aklınızdaki tüm soruları yazın

Bir tablodan başka tablonun içerik sayısına göre çekim yapma

0 oy
61 kez görüntülendi
İyi günler.

Şimdi benim "icerikler" diye bir tablom var. Sonra bu içeriklere verilen beğen,beğenme verilerinin tutulduğu "puan" tablom var. "icerikler" tablomun eşsiz id'sini "puan" tablomda "icerik_id" olarak barındırıyorum. ve "puan" tablomda verilen puana göre 1 ve -1 adında veriler içeren "icerik" adında bir değerim var.

Ben şimdi "puan" tablosundan en çok oyu alan içeriklere göre "icerikler" tablomun içeriklerini sırayla yazdırmak istiyorum. Bunu tek bir sorguda yapabilir miyim? Veya daha değişik bir tablo yapısı daha mı sağlıklı olur? Şimdiden Teşekkürler :)
29, Haziran, 29 Yazılım kategorisinde amiralataf (120 puan) tarafından soruldu | 61 kez görüntülendi

1 cevap

0 oy
İçerik tablona beğen ve beğenme olarak 2 sütun ekleyip +1 ve -1 leri bu şekilde tutabilirsin. Yine de bu şekilde kullanmayı tercih edersen tablo yapılarını biraz daha detaylı anlatırsan tek sorgu yapılabilir gibi görünüyor bana şuan anladığım kadarıyla
29, Haziran, 29 ahmettmertt (270 puan) tarafından cevaplandı
icerikler tablom: id     icerik     tarih     ip
puan tablom:  id     icerik_Id          icerik      tarih     ip

O yöntemle de yapılabilir ama her içeriğe birden çok oy kullanılabilmesi gerekiyor bu yüzden puanları ayrı tabloda tutuyorum. Bu arada söylemeyi unutmuşum MySQL veritabanı :)
not:puan tablosundaki "icerik_id" alanına "icerikler" tablosundaki ilgili içeriğe ait eşsiz id gelmekte. Yine "puan" tablosundaki "icerik" alanına 1 veya -1 gelmekte puana göre.
Demek istediğim şuydu bahsettiğim sütunlatı ekleyip, biri +1 verdiğinde beğen sütununu -1 verdiğinde de beğenme sütununu update ederek sayıları sürekli artırın, her içerik için ne kadar beğen ne kadar beğenme var tutmuş olursunuz. Daha sonra sıralam için

select *,(begen-begenme) as skor from icerikler order by skor desc

Querysi ile halledebilirsiniz. Puan tablosuna ihtiyacınız kalmaz.
Hoş geldiniz, Soru Cevap sizelere sorularınızın diğer kullanıcılarımız tarafından cevaplanması için bir ortam sağlar.
14 soru
23 cevap
8 yorum
678 kullanıcı