Normalt ser tabelstrukturen sådan ud:
tabelsider:
id | name | ...
==========================
1 Some Page
2 Some Other Page
tabel pages_views:
page_id | views
================
1 1234
2 80
hvor pages_views har et unikt indeks på page_id
MySQL-sætningen for at øge visningerne ser derefter ud som følger:
INSERT INTO `pages_views` SET views=1 WHERE page_id=?
ON DUPLICATE KEY UPDATE views=views+1 ;
Siden pages_views.page_id
er unik, oprettes rækken for siden, hvis den ikke eksisterer; hvis den eksisterer (det er "duplicate key"-klausulen), vil tælleren blive forøget.
Jeg valgte to separate tabeller her, da CMS-sider normalt ikke opdateres for ofte (og derfor er deres belastning for det meste læst), hvorimod sidevisninger læses og opdateres med hver sidevisning.