sql >> Database >  >> RDS >> Mysql

PHP &MySQL beste manier om paginaweergaven voor dynamische pagina's te tellen

Gewoonlijk ziet de tabelstructuur er als volgt uit:

tabelpagina's:

id | name            | ... 
==========================
1    Some Page
2    Some Other Page

tabel pages_views:

page_id | views
================
1         1234
2         80

waar pages_views een unieke index heeft op page_id

Het MySQL-statement om de views te verhogen ziet er dan als volgt uit:

INSERT INTO `pages_views` SET views=1 WHERE page_id=?
    ON DUPLICATE KEY UPDATE views=views+1 ;

Sinds pages_views.page_id uniek is, wordt de rij voor de pagina gemaakt als deze niet bestaat; als het bestaat (dat is de "duplicaatsleutel"-clausule), wordt de teller verhoogd.

Ik heb hier twee afzonderlijke tabellen gekozen, omdat CMS-pagina's meestal niet al te vaak worden bijgewerkt (en daarom worden ze meestal gelezen), terwijl paginaweergaven worden gelezen en bijgewerkt, nou ja, bij elke paginaweergave.



  1. Like-wildcard gebruiken in voorbereide verklaring

  2. Een benadering van indexafstemming - Deel 1

  3. Haal de vorige en volgende rij op uit rijen die zijn geselecteerd met (WHERE) voorwaarden

  4. Equivalent van MSSQL IDENTITY-kolom in MySQL