Manejo de publicaciones no leídas en PHP / MySQL

Para un proyecto personal, necesito construir un foro usando PHP y MySQL. No es posible para mí usar un paquete de foro ya construido (como phpBB).

Actualmente estoy trabajando a través de la lógica necesaria para construir una aplicación de este tipo, pero ha sido un día largo y estoy luchando con el concepto de manejar publicaciones no leídas para los usuarios. Una solución que tuve fue tener una tabla separada que esencialmente contenga todas las ID de publicaciones e ID de usuarios, para determinar si se han leído:

tbl_userReadPosts: user_id, post_id, read_timestamp

Obviamente, si la identificación de un usuario aparece en esta tabla, sabemos que ha leído la publicación. Esto es genial, excepto si tenemos miles de publicaciones por día (que es más que posible en el sistema que se propone) y miles de usuarios. Esta tabla se volvería enorme en cuestión de días, si no horas.

Otra opción sería rastrear la última actividad del usuario como una marca de tiempo y luego recuperar todas las publicaciones realizadas después de que se haya actualizado su última actividad. Esto funciona en teoría, pero digamos que un usuario está escribiendo una publicación extremadamente larga, y mientras tanto, varios miembros también comienzan nuevos hilos o responden a mensajes en otros hilos. Cuando el usuario envía su nueva publicación, su última actividad se actualizará y, por lo tanto, no coincidirá con las realizadas mientras tanto.

Alguien tiene experiencia con esto y cómo lo resolvió?

He revisado phpBB y parece que el sistema asigna una sesión personalizada a cada usuario y funciona sobre esa base, pero la documentación es bastante escasa en cuanto a cómo se trata esto con las publicaciones no leídas.

Pensamientos y opiniones recibidos con gratitud, como siempre.

Respuestas a la pregunta(6)

Su respuesta a la pregunta