Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza głosów publicznego systemu moderacji (czyli plusy i minusy)
paw-e-l
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Witam
Chcę wprowadzić na swojej stronie możliwość dawania + lub - zamieszczonym komentarzom (jak na wykopie). Oczywiście dany użytkownik może głosować tylko raz na dany komentarz.
Mam 2 koncepcje jak powinna wyglądać tabela z głosami i nie wiem która będzie lepsza.

  1. tabela `comment_ratings` będzie zawierać 3 pola:
    • `comment_id` - mówi samo za siebie
    • `rating` - suma oddanych + i -
    • `used_ids` - id użytkowników którzy oddali głosy na dany komentarz w postaci ",21,32,87,3,..."

    w tej tabeli jest tylko jeden rekord dla każdego komentarza

  2. tabela `comment_ratings` będzie zawierać 2 pola:
    • `comment_id` - j.w.
    • `user_id` - id użytkownika który oddał głos na dany komentarz

    w tej tabeli ilość rekordów była by znacznie większa bo każdy głos to osobny rekord


Przy każdym załadowaniu podstrony z komentarzami trzeba sprawdzić czy na poszczególne komentarze użytkownik który jest zalogowany oddał głos
  1. w tym przypadku trzeba dla każdego obecnego na podstronie komentarz wykonać:
    1. // $user_id - zmienna zawierająca id zalogowanego użytkownika
    2. //$comment_id - id komentarza
    3. SELECT COUNT(*) FROM `comment_ratings` WHERE `comment_id`=$comment_id AND `user_ids` LIKE ",%$user_id%,"
  2. tutaj sprawa jest prostsza:
    1. SELECT COUNT(*) FROM `comment_ratings` WHERE `comment_id`=$comment_id AND `user_id`=$user_id


które rozwiązanie jest optymalniejsze i nie będzie zarzynać bazy (IMG:style_emoticons/default/biggrin.gif) ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 14:08