Nasıl yorumlar çalışmalarında yaşasın mı?

5 Cevap php

Ben bile ne tür sorular sormalısınız bilmiyorum. Eh, benim yorum bir Yaşasın oluşturmak istiyorum, ama en iyi yolu nasıl ya da ne emin değil. Ben sadece yukarı başparmak için yeni bir alan oluşturmak mı?

5 Cevap

Eğer Neye oy kim takip etmek gerekiyorsa, belki de bir Votes tablo yapmak gerekir:

  • vote_id: Birincil anahtar.
  • user_id: Bu oylamayı yapılan kullanıcı kimliği. [Users tabloya yabancı anahtar.]
  • comment_id: on seçildi yorumun kimliği. [Comments tabloya yabancı anahtar.]
  • vote: (sadece önemsiz bir başparmak yukarı / aşağı sistem varsa belki 1 veya -1) atıldı oy.
  • date: oy döküm zaman.

Bir açıklamanın skor şimdi comment_id tüm vote sütun sadece toplamıdır.

Sadece Comments tabloya bir tamsayı score sütun ekleyerek aksine, bu size bir açıklama yaşanıyor tartışmanın seviyesini söylüyorum avantajına sahip olduğunu unutmayın. Hiç döküm kaç oy bilmeden, sıfır net skor ile iki yorum (kişi yorumun liyakat konusunda eşit bölünmüş, böylece toplam puan 0 civarında gezinen) tartışmalara bir sürü yaşıyor olabilir, ya hiçbiri ( kimse) bir oy kadar umursuyor.

Sadece bir açıklama kadar seçildi kez sayısı için bir int depolamak istismara tabi olacaktır. Muhtemelen de bunu döküm kullanıcı, tekrar tekrar aynı Yorumlarınız için oy insanların önleyebilirsiniz bu şekilde her oy ilişkilendirmek istiyorum.

Bu çalışması için, sana oy için ayrı bir tablo gerekir düşünüyorum. Bu tablodaki her kayıt açıklama id ve oylarını kişinin kullanıcı kimliği olmalıdır.

Size bu ile ne yapmak istediğinize bağlıdır. Neden sadece Yorumlarınız için yukarı / başparmak toplam sayısını aşağı saklamak, sizin yorumlarınıza masada bir int sütun koymak değil mi?

Bill ve John önerilen gibi ayrı bir tablo oluştururken, muhtemelen en iyi yaklaşım olacaktır. Ama yine de performans nedenleriyle comments tabloya bir votes sütun eklemek isteyebilirsiniz. Eğer sadece bir yorum için oy sayımı görüntülemek istediğinizde bu şekilde, votes tablo erişmek gerekmez. Ben bu oy SO üzerinde çalışmak nasıl olduğuna inanıyorum.

Yorumunuzu tablodaki 2 alanları oluşturmak, vote_up ve vote_down, ve buna göre kullanıcının oylama üzerine kendi sayaçlarını artırmak, bu şekilde bu değerlerin toplamı olarak veya yüzde olarak açıklama puan görüntüleyebilir, sonraki durumda size hiç skoru sıralamak mümkün istedim eğer yüzdesi puan depolayan bir üçüncü alan vote_score ekleyebilirsiniz.

Sonra iki kez aynı yorumu oylama kullanıcıları engellemek için oy tablo oluşturmak, şimdiye kadar veya belirli bir zaman dilimi içinde, yani sadece set Cron günde bir kez çalıştırmak ve daha eski kayıtları silmek için ise time()-( 86400 * DAYS_TO_KEEP_VOTE )

  • comment_id
  • User_id
  • vote_time

İyi şanslar.