Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ocenianie, newsów, artykułów ... czegokolwiek
decha-design
post
Post #1





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Witajcie,

Mam taki oto problem. W sumie to nieduży, ale nie mam pojęcia jak go rozwiązać. Może wy mi podsuniecie rozwiązanie.

Mianowicie, mam system oceniania komentarzy, artykułów itd. Ocena jest przechowywana w bazie danych, przy np. danych komentarzu. Jest sobie zapytanie:
  1. "UPDATE `".$this->prefix."news_comments` SET `rating`=`rating`+1 WHERE `id`='".$_GET['cid']."'"


Ocenia fajnie, w tym wypadku zwiększa ocenę o 1. No i teraz, chcę zrobić możliwość ocenienia tylko raz, przez jednego użytkownika danego komentarza, newsa. Jak wy byście do zrobili?

1) Można w sumie oceny trzymać w osobnej tabeli, ale to raczej będzie nieopłacalne (nie potrzeba do tego osobnej tabeli). Szkoda miejsca.
2) Można to zrobić na zasadzie ciasteczka. Ale ciastko można usunąć.

Jak wy byście to zrobili?

btw. w sumie to chyba w złym dziale to napisałem o.O'

Ten post edytował decha-design 16.03.2009, 17:46:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Mephistofeles
post
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Ja bym to zrobił na sesji, niby można usunąć id ale wtedy też wyloguje usera, więc jak kto woli (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
michalg
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

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


Witam,

Cytat(Mephistofeles @ 16.03.2009, 17:53:01 ) *
Ja bym to zrobił na sesji, niby można usunąć id ale wtedy też wyloguje usera, więc jak kto woli (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .


No, ale w ten sposób po każdym zalogowaniu użytkownik będzie mógł ponownie oddawać głos na artykuł. A o to chyba nie chodziło autorowi pytania.

Cytat(decha-design @ 16.03.2009, 17:45:11 ) *
Ocenia fajnie, w tym wypadku zwiększa ocenę o 1. No i teraz, chcę zrobić możliwość ocenienia tylko raz, przez jednego użytkownika danego komentarza, newsa. Jak wy byście do zrobili?

1) Można w sumie oceny trzymać w osobnej tabeli, ale to raczej będzie nieopłacalne (nie potrzeba do tego osobnej tabeli). Szkoda miejsca.
2) Można to zrobić na zasadzie ciasteczka. Ale ciastko można usunąć.

Jak wy byście to zrobili?


Jedyny wybór to baza danych, nie trzymaj danych po stronie przeglądarki, bo nigdy nie zagwarantujesz tego, że użytkownik nie będzie kombinował.

Naprawdę Ci szkoda miejsca na jedną tabelę składająca się z dwóch kolumn? Bo nawet tyle Ci wystarczy - id artykułu, id użytkownika. Nawet jak dodasz dodatkowe kolumny typu znak (głos dodatni, głos ujemny), data/czas oddania głosu, to IMHO rozmiar tej tabeli będzie znikomy w stosunku do tabeli z artykułami.
Go to the top of the page
+Quote Post
decha-design
post
Post #4





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Dobra, może źle się wyraziłem z tym miejscem ...

W sumie to będzie tylko kilka kb ... nic wielkiego ... ale to trzeba też zliczyć, a ja mam niestety ocenę wyrażoną w punktach np. - 50, 0, +24 ... nie w skali od 1-10 ... więc ze zliczaniem byłoby w sumie chyba dużo roboty ...

Co prawda, w SQL istnieje funkcja SUM, ale nie wiem jak ona się zachowa z danymi typu double ... jak mam i liczby dodatnie i ujemne

Ten post edytował decha-design 16.03.2009, 20:00:27
Go to the top of the page
+Quote Post
michalg
post
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

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


Cytat(decha-design @ 16.03.2009, 19:57:38 ) *
Co prawda, w SQL istnieje funkcja SUM, ale nie wiem jak ona się zachowa z danymi typu double ... jak mam i liczby minusem jak i plusowe


O ile potrzebujesz zwykłą sumę arytmetyczną, to zadziała bez problemu, nie martw się. Załóż dodatkowo indeks na id artykułu jeżeli martwisz się o wydajność.
Go to the top of the page
+Quote Post
decha-design
post
Post #6





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Ok, zobaczę co mi z tego wyjdzie. =)
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: 17.09.2025 - 20:53