Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Głosowanie na stronie - teoria
tikky
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Witam,

Chciałbym zrobić na stronie głosowanie na dany produkt.
Mam pytanie - na razie czysto teoretyczne. Jak przyjęło się takie rzeczy robić?

Ja wymyśliłem dwie koncepcje:
1. Glosowanie tylko w systemie + i -.
W bazie z ofertą dodać dwa rekordy glosy_minus i glosy_plus. Pozniej tylko wyliczyć ocene srednią: (ocena_plus + ocena_minus) / ilość ocen

2. Drugi sposób to głosowanie w skali od 1 - 10. Tu myśłałem również o dwóch komórkach w bazie - jedna będzie zliczała głosy - to znaczy za kazdym glosem bedzie dodawala wartosc 1-10 do juz istniejacej wartosc a w drugiej komorce bede zliczac glosy - to znaczy po dodaniu do oferty zwiekszal ilosc o 1. A ocena bedzie to: (Suma głosów/Ilość głosów).

Ale pewnie wy macie jakieś sprawdzone metody.

A sprawa druga to jak zabezpieczyć taki system przed podwójnym głsowaniem przez tą samą osobę?

z góry dziękuję

--
Tikky

Ten post edytował tikky 28.11.2007, 21:31:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


To, jaki typ ankiety zastosować zależy od Ciebie i od danych, których potrzebujesz, ja zastosowałbym skalę - od -5 do 5 (co połączyłoby te dwie metody).
Ilości głosów zliczać nie musisz, bo baza może je policzyć podczas select'a (np mysql_num_rows), więc do bazy zapisujesz same głosy, ewentualnie informacje o tym, kto je oddał.
Jak zapiszesz sobie nr sesji w bazie i ciastko u klienta to teoretycznie możesz zabronić ponownego głosowania sprawdzając te informacje przy następnej próbie oddania głosu - uparty klient jak będzie chciał zagłosować ponownie to i tak zagłosuje (usunie ciastko, zmieni przeglądarkę itp)
Go to the top of the page
+Quote Post
tikky
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


No ale problem w tym ze glosy mam przyporzadkowane do oferty. A wiec jesli czterech uzytkownikow zaglosuje na 5 i jeden na 3 to w bazie bezie cos w tym stylu:

  1. Id_oferty - 1
  2. nazwa - costam
  3. cena - 250,99 zł
  4. ocena - 23


a wiec poprzez mysql_num_rows nie policze ilosci glosow, dlatego mysalem o drugim polu, ktore mogloby przetrzymywac ilosc glosow, czyli cos w stylu:

  1. Id_oferty - 1
  2. nazwa - costam
  3. cena - 25 zł
  4. ocena - 23
  5. ilosc_ocen - 5


Chyba, ze zrobic by jeszcze jedną tabelę ktora składała by się z id_oferty, oceny i id_sesji osoby, która go dodała wtedy mozna by to zliczyc ale nie wiem czy jest sens komplikowac sprawę.

Ten post edytował tikky 28.11.2007, 23:35:08
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


To nie jest komplikacja tylko optymalizacja (moim zdaniem), przetrzymywanie wyników głosować w osobnej tabeli jest chyba jak najbardziej naturalne, tym bardziej że możesz sobie do tego dopisywać dodatkowe informacje o głosujących, date oddania głosu i inne dane do późniejszych analiz.
Trzymanie tego razem to tylko jak nie potrzebujesz zaawansowanych statystyk (ale i tak chcesz pamiętać kto głosował a kto nie...)
Go to the top of the page
+Quote Post
sticker
post
Post #5





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


apropo systemu ocen byl temat poruszany na grill it bodaj numer 9 poszukaj prezentacji o wskaźniku psk i jakiejs prezentacji z tego grila bodaj sklepy24
Go to the top of the page
+Quote Post

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: 24.08.2025 - 06:56