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.
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