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
michalg
post
Post #2





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

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 13:49