Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Menajes no leidos de un foro.

Estas en el tema de Menajes no leidos de un foro. en el foro de Mysql en Foros del Web. Como podría hacer para saber cuales son los post de un foro que tienen mensajes nuevos que el usuario no ha leído? He pensado guardar ...
  #1 (permalink)  
Antiguo 18/12/2008, 06:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Menajes no leidos de un foro.

Como podría hacer para saber cuales son los post de un foro que tienen mensajes nuevos que el usuario no ha leído?

He pensado guardar en una tabla la fecha de la última visita del usuario a ese post y comparar con la fecha del último mensaje. Pero y los post que el usuario no ha visitado?

Habría alguna forma de obtener resultados null o a 0 indicando que no hay tabla entre ese post y ese usuario?

Es decir, cuando haga la consulta para sacar la lista de post, que me devuelva la ultima fecha al que ha accedió el usuario o todo ceros si no ha accedido nunca.
  #2 (permalink)  
Antiguo 24/12/2008, 12:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Menajes no leidos de un foro.

Alguna sugerencia?
  #3 (permalink)  
Antiguo 29/12/2008, 11:25
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Menajes no leidos de un foro.

Podrías intentar agregar un campo a la tabla de mensajes en el que guardes los usuarios que han leido el post de esa manera con un select muy simple podrías saber si un usuario ya ha leido el mensaje.
  #4 (permalink)  
Antiguo 30/12/2008, 06:27
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Menajes no leidos de un foro.

Cita:
Iniciado por rqd Ver Mensaje
Podrías intentar agregar un campo a la tabla de mensajes en el que guardes los usuarios que han leido el post de esa manera con un select muy simple podrías saber si un usuario ya ha leido el mensaje.
¿Te refieres a un campo con una lista de usuarios? ¿Qué tipo de campo sería? ¿Varchar? ¿Text? ¿De cuantos caracteres? ¿Y si el número de usuarios que lo leen supera el límite del campo?

La opción que veo es crear una tbla que relacione cada mensaje con cada usuario pero esto supondría tener un registro por cada mensaje del foro y por cada usuario que lo haya leído ¿No es demasiado?

Si tenemos 100 usuarios y hay 1000 mensajes, por ejemplo. Suponiendo que la media de mensajes leídos por usuario sea del 50% habría:

100*(1000*0.50)=50.000 registros

Creo que es demasiado, para los datos aportados. Si el foro tuviese un poco más de tráfico, esa tabla sería descomunal.

Yo creo que debe haber algún otro sistema para gestionar esto aunque ignoro cual es.

Saludos
  #5 (permalink)  
Antiguo 03/01/2009, 14:46
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Menajes no leidos de un foro.

Otra opción es hacer un archivo por cada mensaje, en dicho archivo guardarías el identificador de los usuarios que han leido el mensaje y mediante php (fopen) podrías saber si un usuario ya leyo el mensaje.

O puedes hacerlo de manera similar teniendo un archivo por usuario y en cada uno escribir el identificador de los mensajes que ha leído.

En cualquiera de los casos tienes que revisar la cantidad de información que vas a almacenar, no dejan de ser datos ya sea que estén en base de datos o en sistema de archivos.
  #6 (permalink)  
Antiguo 01/02/2009, 07:29
 
Fecha de Ingreso: septiembre-2008
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Menajes no leidos de un foro.

La idea seria que solo se guardase los que han leido alguna vez el post.
Lo que me gustaría saber si hay una manera de hacer una consulta con las dos tablas (mensajes y mensajesusuarios) y que si en mensajesusuarios no cuentra ningun resultado me devuelva en un campo de la fila 0, falso o lo que sea.
Una consulta en plan:
SELECT titulo, usuario..... FROM mensajes, mensajesusuarios WHERE mensajes.id = mensajesusuarios.mensaje AND mensajesusuarios.usuario = '$usuario'

Pero claro, si no encuentra ninguna coincidencia que en vez de suprimir la fila, me la marque o algo asi...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:58.