Yorum beğenme sistemi
Kafamı kurcalayan bir soru var. Benzer bir şeyi yapmayı düşündüğüm için buradaki yorum/soru beğenme mantığını ele almak istedim.
Varsayıyorum ki yaptığımız yorumlar yorumlar
diye bir tabloda tutuluyor olsun. Burada sadece beğenme opsiyonu var ama diyelim ki beğenmeme durumu da olsun. Kullanıcılar için de bir users
tablosu vardır. Şimdi bu kayıtlı kullanıcılar yorumları beğendiği veya beğenmediği zaman bu kayıtlar ne şekilde depolanıyor? Kullanıcı özelinde 1 beğenme veya beğenmeme hakkı var. Bu aradaki bağlantı nasıl kuruluyor.
Chat gpt bir üçüncü tablo oluşturup soru id ve kullanıcı id kullanarak öyle kayıt et diyor.
Gerçekten de buradaki mantık böyle mi, her beğeni attığımızda tabloda bir satır mı oluşturuyoruz?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
bunu yapmanin farkli yollari var, eger begenme-begenmeme durumlari senin icin onemliyse ve ileride kullanicilarina buna gore icerik vs. gostereceksen kesinlikle 3. bir tabloda her bir begeni ya da begenmeme durumunu yorum ve uye idsi ile tutman gerekiyor.
alternatif olarak cookie'de tutup sadece yorumlar tablosundan +1, -1 yapabilirsin ama bu da cok guvenli olmuyor, cookie yi kaldirip birden fazla kez islem yapabilirler, cok onemli degilse cookie'de, degerler guvenilir olsun oynanmasin, herkes bir kere bu islemi yapsin dersen de db de tutman gerekiyor.
@tayfunerbilen, hocam teşekkür ediyorum. Şimdiye kadar bu şekil çoklu tablonun birbiri ile etkileşimini gerektirecek ihtiyaçlarım olmadığı için öğrendiğimde tam manasıyla doğrusunu öğrenmek istedim. Bahsettiğiniz konular sonucunda 3. bir tablodan başka seçenek kalmıyor.
Konuyla ilgili bende araştırdım fakat içime sinen tatmin edici bir yol bulamadım.
Benzeri şekilde bildirim sistemi de aklımı kurcalıyor. @tayfunerbilen bir videosunda Prototürk'ü yazarken çok mantıklı bir yöntem keşfettiğini ve yakın zamanda bununla ilgili bir video çekeceğini söylemişti ama hala bekliyorum. :)
Bu konuda ilişkisel veritabanlarını detaylıca incelemeni önerenebilirim. Many-to-many veya one-to-many tarzı ilişkilerin mantığını anlamak adına YouTube'den birçok video izlemek gerekli olabilir.