Para un proyecto personal, necesito crear un foro usando PHP y MySQL. No me es posible usar un paquete de foro ya creado (como phpBB).Manejo de publicaciones no leídas en PHP/MySQL
Actualmente estoy trabajando con 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 las publicaciones no leídas para los usuarios. Una solución que tenía era tener una tabla separada que contiene esencialmente todos los ID de correos y los ID de usuario, para determinar si han sido leídos:
tbl_userReadPosts: user_id, post_id, read_timestamp
Obviamente, si el ID de un usuario aparece en esta tabla, se Sé que han leído la publicación. Esto es genial, excepto si tenemos miles de publicaciones por día (lo cual 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 actualizó 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 inician nuevos hilos o responden a publicaciones en otros hilos. Cuando el usuario envía su nueva publicación, su última actividad se actualizaría y, por lo tanto, no coincidiría con las realizadas en el ínterin.
¿Alguien tiene experiencia con esto, y cómo lo abordaron?
He comprobado en 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 con las publicaciones no leídas.
Pensamientos y opiniones recibidas con gratitud, como siempre.
Di todos los contestadores un +1 por su entrada. Me gusta tu sugerencia, John. Voy a tener un juego con este método (o combinación, más bien). ¡Gracias! – BenM