Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/03/2014, 14:33
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Foro; temas recientes no leídos.

Hola iEnrique.

Se me ocurre una estructura muy basica asi:

Usuarios:
id_usuario|nombre
PK: id_usuario AI

Temas:
id_tema|fecha|id_autor|mensaje
PK: id_tema AI
FK: id_autor -> usuarios.id_usuario

Mensajes:
id_mensaje|id_tema|id_usuario|fecha|mensaje
PK: id_mensaje + id_tema
FK: id_tema -> temas.id_tema
FK: id_usuario -> usuarios.id_usuario

Visitas:
id_tema|id_usuario|fecha
PK: id_tema + id_usuario
FK: id_tema -> temas.id_tema
FK: id_usuario -> usuarios.id_usuario

Ahora bien.

Cuando un usuario publica un nuevo tema, lo guardas en Temas y nada mas.
Cuando un usuario visita un tema insertas o actualizas el registro de la tabla visitas con los datos del tema , usuario y la fecha
Cuando un usuario envia un mensaje nuevo lo guardas en mensajes y nada mas.

Para cada usuarios tendrias:
Los temas que no visito son los que existen pero no estan en la tabla de visitas.
Los temas que visito y tienen mensajes nuevos, son aquellos en los que la fecha de la tabla visitas es menor a la fecha del ultimo mensaje publicado
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios