Statistik ohne grosse Last?

aargau

Erfahrenes Mitglied
Hallo Zusammen
Ich möchte eine Statistik für alle Bilder auf meienr Partywebseite machen. Jedoch soll pro User nur 1X gezählt werden. Da es zum teil sehr viele klicks werden könnten, denke ich das es nicht gerade so toll ist alle eintäge nach dem Bild und der IP der Person zu durchsuchen. Wie kann ich das am besten ohne grosse Last mit My SQL erstellen?

So würde es jetzt aussehen:
ID | picid | ip | userid | time
 
Erstelle ein UNIQUE-Feld, in dem speicherst du einen String nach dem Schema
Code:
[$userid]_[$picid]
So kannst du deine INSERTS durchführen, ohne erst zu prüfen, ob der User bereits auf das Bild geklickt hat, denn wenn er das hat, wird das INSERT überhaupt nicht vorgenommen, da der String bereits in der Tabelle steht.

Falls es nicht nach einer UserID, sondern nach der IP gehen soll, könntest du es so machen:
Code:
[$_SERVER['REMOTE_ADDR']]_[$picid]_[TO_DAYS(NOW())]
...das würde bspw. einen Klick pro Tag und IP zählen.

Vergesse dabei nicht, ein @ vor das mysql_query() zu setzen, da diese Vorgehensweise einen MYSQL-Fehler produziert, wenn der User bereits auf das Bild geklickt hat.
 
Habe nun diesen vorschlag verwendet. Nur habe ich nun innert kurzer Zeit 20 000 DB einträge in dieser Tabelle, da die Bilder relativ viel angesehen werden... Kann ich irgend wie die Tabelle aufräumen, dass sie nicht so gross wird? Die Anzahl wie viel mal das Bild angeklickt wurde, wird immer in die neuste Zeile geschrieben also sieht die DB so aus:

ID | picid | ip | userid | time | viewed |
 
Zurück