Tienes un par de opciones como yo las veo.
Galletas
Puede almacenar una cookie en el navegador del usuario para cada página que se está conectando puntos de vista sobre. Verifique esta existencia de cookies y no registre una vista si la cookie ya existe.
Lo malo de esto es que no funcionará si las cookies están desactivadas o si alguien está tratando de jugar con el sistema.
En el lado positivo, no tiene que preocuparse por el almacenamiento de potencialmente millones/miles de millones de filas de datos de tablas.
base de datos
Usted lleva a cabo un registro para cada vista. Relacionando ese registro con un usuario de alguna manera, p. ID de miembro, dirección IP; algo que debe ser exclusivo del usuario. La IP no es ideal, pero es lo suficientemente buena si no requiere que los usuarios inicien sesión.
Así que tendría, por ejemplo, una tabla con las siguientes columnas,
- ArticleID (clave externa)
- identificación de usuario (clave externa)
- Fecha
La fecha será útil por un par de razones,
- Informes. Puede construir estadísticas mucho mejores una vez que sepa cuándo se grabó cada vista.
- Ver tiempos de espera. Por ejemplo, es posible que solo desee almacenar una vista por usuario por hora. Con la columna de fecha retenida puede hacer esto.
Si su aplicación se vuelve popular en esta situación, entonces tendrá que lidiar con las implicaciones de almacenamiento. Tengo una aplicación popular de Facebook que da como resultado que se agreguen más de 100.000 filas de visualización cada día. De forma realista, si tu aplicación se vuelve tan popular que se convierte en un problema, entonces tendrás problemas mucho más grandes con los que lidiar.
¿tiene algún código de ejemplo? – AminM