Skocz do zawartości

Top Ten


ZimZum

Rekomendowane odpowiedzi

Planuje zrobic system oceniania artykulow/userow/filmow czegokolwiek na moja strone.

W tym celu zrobilem oddzielna tabele:

id, id_glosujcy, id_na_kogo_glosujesz, wartosc_glosu

nazwy kolumn sa chyba miningful :-)

wartosc glosu to liczba naturalna w skali od 1 do 5

Jesli chce wyswietlic srednia arytmetyczna glosow to umiem to zrobic dla danego usera.

Ale jak zalatwic jednym zapytaniem, zeby sql mi posortowal userow wg najwiekszej sredniej arytmetycznej glosow malejaco?

Z gory dzieki za pomysly.

Edyta:

czy takie rozwiazanie w ogole byloby wydajne, czy lepiej do tabeli, gdzie trzymam userow dodac dwie kolumny

glos, ilosc_glosow

i wtedy po prostu posortowac po kolumnie glosow i zrobic druga tabele:

id, id_glosujcy, id_na_kogo_glosujesz

ktora bylaby zabezpieczeniem, zeby nie glosowac kilkukrotnie na dana osobe?

Nie wierz w cuda, polegaj na nich :D

Sztuki Walki: Nippon Ju Jitsu

Odnośnik do komentarza
Udostępnij na innych stronach

SELECT ( ROUND( ( SUM(vote) / COUNT(vote) ), 2 ) ) AS srednia, glosujacy_id, inne_pole FROM votes GROUP BY foto_id ORDER by srednia DESC

tak pi razy oko... dopasuj sobie.

do tego mozesz podlaczyc inna tabele aby polaczyc to z pozycja na ktora bylo cos glosowane.

Odnośnik do komentarza
Udostępnij na innych stronach

hmm, proponuje trzymac aktualna srednia w tabeli artykulu/filmu/badz czegos innego... np:

tabela artykuly:

id --- nazwa --- tresc --- srednia_glosow

dlaczego? bo potem przy kazdym wywolaniu skryptu nie zliczasz ponownie sredniej, lecz po prostu ja wyswietlasz. a zeby obliczac nowa srednia pobierasz z bazy aktualna, dodajesz glos i dzielisz przez 2 :soczek:

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności