PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbankdesign für Counter



coolpix
28-09-2005, 21:23
Hallo,

ich habe vor mir einen eigenen Counter zu bauen da solche vorgefertigen Lösungen und Scripte nichts für mich sind. Man wei(ss) nicht richtig was sie machen und wie genau sie arbeiten. So kann man die Verantwortung wenigstens selbst auf sich ziehen.

Mein Problem ist nicht der Counter selbst, mit Referrer, Browser und Betriebssystem, etc. herausfinden, sondern das Datenbankdesign. Ein normaler Counter inkrementiert ja gewöhnlich immer nur eine Zahl in einer Tabelle, und in eine andere trägt er dann die IP mit einem Timestamp ein, um wiederholtes Zählen eines Users innerhalb xy-Minuten/Stunden zu verhindern. Zugegeben, dies ist ein ganz spärliches Modell.

Nun, ich will mit einen Counter bauen, der diese Funktionen besitzen sollte:
beBe
Besucher Total
Besucher Heute
Besucher Gestern
Max. Besucher pro Tag
Besucher im Moment online


Diese Funktionen sollten fuer den Anfang fuer mich genuegen. 'Besucher Total' ist wohl am einfachsten, eine Tabelle wie schon gesagt, die die Anzahl inkrementiert.

Aber wie mache ich es fuer 'Besucher heute' und 'Besucher gestern'? Soll ich zwei verschiedene Tabellen machen, und dann im PHP-Script beim ersten Aufruf nach 0 Uhr die Besucher aus 'today' in 'yesterday' kopieren, und die von 'yesterday' löschen? Oder jemand eine bessere Idee? Au(ss)erdem eine Tabelle mit dem max. Besucher pro Tag, die, wenn 'today' nach 'Max. Besucher pro Tag' kopiert wird, aktualisiert wird, wenn nötig.

'Besucher im Moment online' sollte keine Probleme darstellen.

Ist meine Vorangehensweise völlig falsch, oder habt ihr bessere, perfomantere oder schönere Ideen? Die Counter die ich mir angesehen habe, haben derart nicht-selbstverständliche Tabellennamen verwendet, und die SuFu hat mir auch nicht weitergeholfen.

mfG

Romanday
29-09-2005, 09:11
Hallo,

ich habe vor mir einen eigenen Counter zu bauen da solche vorgefertigen Lösungen und Scripte nichts für mich sind.
mfG

Schau dir mal die MySQL Funktion SUM() an, damit kannst du z. B.
deine täglichen Hits ermitteln + Gesammtsumme.
Dann z. B. einen Cronjob laufen lassen, der die Daten für den
aktuellen Tag ermittelt und z. B. in deine Statistik Tabelle kopiert.