Zazwyczaj struktura tabeli wygląda tak:
strony tabeli:
id | name | ...
==========================
1 Some Page
2 Some Other Page
tabela pages_views:
page_id | views
================
1 1234
2 80
gdzie pages_views ma unikalny indeks na page_id
Instrukcja MySQL do zwiększania widoków wygląda następująco:
INSERT INTO `pages_views` SET views=1 WHERE page_id=?
ON DUPLICATE KEY UPDATE views=views+1 ;
Od pages_views.page_id
jest unikalny, wiersz dla strony zostanie utworzony, jeśli nie istnieje; jeśli istnieje (jest to klauzula „duplikat klucza”), licznik zostanie zwiększony.
Wybrałem tutaj dwie oddzielne tabele, ponieważ strony CMS zwykle nie są aktualizowane zbyt często (i dlatego ich ładowanie jest w większości odczytami), podczas gdy odsłony są czytane i aktualizowane, cóż, przy każdym wyświetleniu strony.