Eğer articles yanında bir de posts diye bir tablon olursa onun için de ayrı bir post_votes ve post_scores tablosu mu açacaksın?
Like/Dislike yapısı sql ile yapılması mümkün olsa da ileride satırlarlar artıkça iş zorlaşır. Ayrıca sql static bir yapı sunduğu için esnek değil. Proje ciddi bir şey ise MongoDB gibi değişik bir veritabanı arayışına girin bence..
Facebook'u düşün. Sql kullansalardı muhtemelen yüzlerce tablo kullanmaları gerekecekti. yorumlar, görseller, paylaşımlar, bir sürü şey like yapılıyor..
Basit projeyse like/dislike ları tek bir tabloda kullanmaya çalışın. Elbette sql için bunu söylüyorum.
Her bir model için benzersin bir ID oluşturup, tüm like/dislike tablosunda idlere göre sıralayabilirsiniz.
scores
|_id
|_model_hash_Id // örnek Articles modeli için 'aAdsa2sade32',
|_like_count
|_dislike_count
|_date
sonrasında Scores modeline bir scope methodu tanımlarsanız.
public function scopeType($query, $hash_ID)
{
return $query->where('_model_hash_Id', '>', $hash_ID);
}
Kullanımıda şunun gibi olabilir.
$istenilenModelSkorlari = Scores::type($modeHashId)->get();
Böyle bir mantıkla sql ile olabilir diye düşünüyorum. Denemek lazım