Zliczanie kliknięć przycisku/obrazka poza bazą danych

0

Chciałbym zapytać w jaki sposób realizowane są kliknięcia w przyciski tak jak np. na portalu demotywatory.pl. Chodzi o to , że niezalogowany użytkownik , może tylko raz dokonać oceny danego obrazka poprzez kliknięcie pod nim odpowiedniego przycisku.Natomiast system zlicza liczbę wszystkich kliknięć. Wątpię, żeby każdą taką informację przechowywać w bazie danych czy w ciasteczkach , które każdy może usunąć? Macie jakiś pomysł w jaki sposób rozwiązać wyżej przedstawiony problem?

0

To masz słabe zabezpieczenia, skoro za bazy danych każdy może Ci usuwać dane :P

Loguje się po IP w przypadku niezalogowanych, po ID usera w przypadku zalogowanych

0

Chodziło mi , że każdy może usuwać ciasteczka:). A gdzie zapamiętujesz czy ktoś oddał już głos? Bo chyba nie w bazie danych tak jak napisałem na początku bo objętość bazy rosłaby w zastraszającym tempie

1

Tak, w bazie danych. Co Ty byś chciał trzymać w bazie danych jak nie dane? IP to jest 15 bajtów, id obrazka jakieś max 4 bajty, 1 bajt to wartość głosu (-1, +1). Czyli 1 głos to 20 bajtów. 50 głosów pochłonie więc 1KB. Jeden obrazek ma u nich 200 głosów średnio. To daje: 4KB na obrazek zajmują głosy.

Stosując poprawną kompresję, na każdym obrazku mogliby zaoszczędzić z 15KB.

Rozmiar bazy danych więc jest małym problemem.

Zresztą wielkie serwisy to nie strona uruchamiana z laptopa z tesco - za tym stoją całe serwerownie, taki FB pewnie ma minimum 100MB/sekundę przyrostu bazy danych. Demoty pewnie kilka MB dziennie (chociaż w sumie dużo oni nie przechowują w samej bazie na oko - nawet komentarze wywalili na FB).

Zresztą - czy to zapiszesz do bazy, czy do pliku, czy gdziekolwiek - zawsze będzie miejsce na dysku zajmować.

A JAKIMKOLWIEK danym od klienta nie można ufać - jak sam odkryłeś (tu Ci rozwinę - jeżeli zrobisz selecta z opcjami tak, nie, to nie możesz absolutnie zakładać, że do serwera nie dotrze kiedyś od użytkownika dupa). Więc ciasteczka odpadają. Baza danych Twoim przyjacielem.

0

Dziękuje za rzeczowe wyjaśnienie problemu. Myślałem , że może jest to realizowane w jakiś inny nieznany przeze mnie sposób stąd te pytanie.:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1