goedemiddag,

Ik zit met het volgende probleem. Ik zou graag de dagelijkse statistieken bijhouden van elk artikel van de laatste 30 dagen. Mijn probleem is hoe structureer ik mijn DB. Om te beginnen maak ik een tabel met een kolom product_id en dan 30 kolommen voor elke dag. De eerste 30 dagen vul ik gewoon de volgende kolom in maar wat moet ik doen wanneer alle 30 kolommen vol zijn?
Ik kan me voorstellen dat ik dan Kolom 1 leeg maak en dat de rest een naar voren moet worden geschoven. Ik vraag me af of er een betere en misschien makkelijkere manier bestaat.
Ik begrijp goed hoe ze te werk gaan in de tutorial die je gaf maar hoe ik dit nu moet toepassen op mijn eigen voorbeeld, dat zou ik niet weten.

30 kolommen is dus niet de juiste weg, zou je kunnen aan geven hoe ik het beter zou kunnen aanpakken?
Je moet geen tabel voor dagen maken maar voor bezoekers.

TABEL BEZOEKERS

id
ip
datum_tijd
pageviews
instap_pagina

En dan haal je de bezoekers van de laatste 30 dagen uit de database, dus DATUMTIJD between 28-07-2014 AND 27-08-2014

je kan dan veel meer in het tabel opslaan per bezoeker zoals

zoekwoord
browser
mobiel_desktop_tablet
Opslaan van bezocht artikel + datum --> daarna kun je o.b.v. datuminterval aantallen uitrekenen.
Vergeet die laatste dertig dagen inderdaad.

tabel statistieken:
- id integer, auto-increment en primary key
- pagina varchar(255)
- datum datetime

gewoon voor iedere hit een nieuwe record toevoegen met INSERT.

bij het uitlezen kun je dan met behulp van BETWEEN en COUNT alle hits van de pagina's krijgen


SELECT
	pagina, COUNT(*) AS hits
FROM
	statistieken
WHERE
	(datum BETWEEN '2014-01-01 00:00:00' AND '2014-02-01 00:00:00')
GROUP BY
	pagina
ORDER BY
	hits DESC
Al eens over Analytics nagedacht? Een gratis tool met veel mogelijkheden!

Reageren