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

tabla mensajes privados

Estas en el tema de tabla mensajes privados en el foro de Mysql en Foros del Web. Buenas!! Necesito por favor consejos, estoy diagramando un sistemita de mensajes privados para mi sitio y me trabé en algunas cuestiones. El asunto es asi: ...
  #1 (permalink)  
Antiguo 30/07/2011, 19:11
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
tabla mensajes privados

Buenas!!

Necesito por favor consejos, estoy diagramando un sistemita de mensajes privados para mi sitio y me trabé en algunas cuestiones.

El asunto es asi: el sitio maneja avisos, donde cada usuario puede publicar los suyos y recibir mensajes de otros usuarios por cada uno de esos avisos.

La tabla la pensé así:

id | idaviso | idvisita | idremitente | mensaje | fecha | leido

donde:
id = identificador del mensaje
idaviso = tal cual, id del aviso de interes por parte del q manda el mensaje
idvisita = es el id del usuario que envia el mensaje, obvio el que recibe es el id del dueño del aviso
idremitente = alterna entre idvisita e iddueño para saber quien envia el mensaje, sea envío o respuesta
mensaje y fecha son claros
leido = indica 0 para no leido y 1 para leído, refiriéndose a la parte contraria del que envía el mensaje del registro

Pero creo que al hacerlo asi me la estoy complicando, por eso necesito por favor consejos!

Por ejemplo: a la hora de listar los mensajes, necesito por un lado mostrar los mensajes que un usuario recibe por sus avisos, y por otro lado los mensajes que el usuario envía para avisos de otros. Y las consultas a MySQL para eso me estan matando! especialmente detallar en cuales hay mensajes sin leer.

Como puedo mejorar esta tabla?????

Desde ya muchisimas gracias!!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #2 (permalink)  
Antiguo 30/07/2011, 19:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: tabla mensajes privados

Lo que necesitas es básicamente el diagrama de una red social, porque un sistema de avisos publicados y un sistema de mensajes por tema se diferencian sólo en la aplicación, pero son conceptualmente semejantes.
Mira la parte de mensajes de este ejemplo:



O este, que tiene un muro de publicaciones:

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/07/2011, 16:00
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
Respuesta: tabla mensajes privados

Buenas! gracias gnzsoloyo por la respuesta.

Te comento, lo replantee un poco y ahora tengo la tabla con otros campos con los que tuve mejor resultado para la mitad de lo que necesito.

Dejo una imagen de la tabla con unos datos meramente didácticos donde evito id's a otras tablas y demás para facilitarme las pruebas.



Por lo pronto ya logré ver los mensajes que recibo a mis avisos clasificados, PERO me falta lograr filtrar los mensajes que un usuario envía a los avisos de otras personas, tomando correctamente el campo leído para saber cuando hay mensajes nuevos.

La consulta por ahora es:

Código MySQL:
Ver original
  1. SELECT mensajes.clasificado, MIN( mensajes.leido ) AS 'leido', mensajes.recibe
  2. FROM mensajes
  3. WHERE mensajes.clasificado NOT LIKE "ALE%"
  4. AND mensajes.recibe = 'ALE'
  5. GROUP BY mensajes.recibe, mensajes.clasificado
  6. ORDER BY leido

Con la que obtengo como respuesta



Esos datos son correctos, pero necesito que tambien me muestre los mensajes que envié pero no recibí respuesta, y he aquí que no sé como hacerlo. Para mayor detalle, faltaría mostrar en la respuesta el mensaje de ID 14.

Espero por favor puedan ayudarme, necesito solo solucionar esto para continuar.

Desde ya muchisimas gracias!!!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You

Etiquetas: tabla
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 09:20.