Vamos a hacer una descripción más ajustada a tu caso:
Una visita tiene:
- Un usuario
- Un inicio (día y hora de entrada).
- Una IP de origen.
- Un ID de sesión (único por visita).
Cada visita además tiene varias páginas recorridas, y en cada caso hay:
- Sesión a la que pertenece
- Pagina a la que entró.
- Fecha y hora de acceso a la pagina.
en ese contexto, hay dos tablas:
Cita: VISITA(user_id, fecha_hora, ip_origen, sesion_id)
NAVEGACION_VISITA(sesion_id, fecha_ingreso, pagina_id)
En el caso de la primera tabla, la PK quedaría definida por (user_id, fecha_hora), teniendo una clave alternativa en sesion_id.
La segunda tabla tiene por PK (sesion_id, fecha_ingreso), siendo sesion_id la FK (MySQL admite usar un campo UNIQUE de una tabla como FK).
Para cumplir esto, cada vez que en la sesión de usuario navega a otra parte, debe enviar a insertar la página en la que entra en esa navegación. Puede parecer excesivo, pero si las conexiones son por sesión, esto no debería tener un mayor impacto en la performance.
¿Se entiende mejor la idea?
Ese tipo de estructura permitiría incluso el seguimiento específico de lo que hizo un usuario, y también cuáles son las páginas más visitadas en un site, o en que hora de qué dias hay mayor uso ed unas u otras, etc., todo con muy poco costo adicional.