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

relacionar 3 tablas (usuarios, mensajes privados)

Estas en el tema de relacionar 3 tablas (usuarios, mensajes privados) en el foro de Mysql en Foros del Web. muy buenas! tengo algunas dudas con relacionar estas 3 tablas y si realmente hacen falta 3 tablas. tengo una tabla de usuarios, lo que estoy ...
  #1 (permalink)  
Antiguo 01/05/2014, 14:07
 
Fecha de Ingreso: diciembre-2006
Mensajes: 26
Antigüedad: 17 años, 11 meses
Puntos: 0
relacionar 3 tablas (usuarios, mensajes privados)

muy buenas! tengo algunas dudas con relacionar estas 3 tablas y si realmente hacen falta 3 tablas.

tengo una tabla de usuarios, lo que estoy intentando es un sistema de mensajería privado, pero no si si la relación tiene que ser de 1 a varios, o seria mejor crear una tabla intermedia y hacerlo de varios a varios.

también he creado 2 tablas una de enviados y otra de recibidos por si un usuario borra un mensaje que no se le borre al otro.

alguien me puede ayudar con la manera mas eficiente de hacer esto?

os pongo mi BD:



un saludo
  #2 (permalink)  
Antiguo 06/05/2014, 09:55
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: relacionar 3 tablas (usuarios, mensajes privados)

No se como ayudarte en lo que preguntas, he empezado hace relativamente poco con esto y no estoy capacitado para responder a tu pregunta.

No obstante en lo que dices de mensajes enviados y recibidos si no he entendido mal van a tener a priori los mismos mensajes, pero vas a borrarlos según los borre el emisor y el receptor, si es así me parece que es un desperdicio de recursos importante el duplicar los mensajes.

Yo haría 1 sola tabla de mensajes (en lugar de las 2 tuyas) con 2 columnas mas (además de las que ya tienes) , borrado_emisor y borrado_receptor de tipo tinyint (1) para poner 0 o 1 según lo hayan borrado.

Por si no me he explicado con claridad por defecto los 2 campos tienen 0 (false en php) y si uno de los dos borra el mensaje pasa el campo en cuestión a 1 (true en php) así tu puedes no mostrarle ese mensaje al usuario que lo haya borrado pero sigue existiendo para que si le salga al que no lo ha hecho, y si el otro decide borrarlo los 2 campos se quedarían en 1, y ahí ya decides dejar el mensaje en la DD (aunque no se les muestre a ninguno de los 2 usuarios) o borrarlo de la DB, me parece bastante mas eficiente que tu forma, pero vamos que igual me equivoco, que nos iluminen alguno de los expertos que pululan por el foro ;D
  #3 (permalink)  
Antiguo 07/05/2014, 18:01
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: relacionar 3 tablas (usuarios, mensajes privados)

Hola lo que yo haría seria otra tabla de detalle de mensajes asi haces una relación varios-varios donde un usuario puede tener varios mensajes enviados pero también puede tener varios mensajes recibidos y viceversa, osea un mensaje enviado puede tener varios usuarios y a su vez un mensaje recibido también puede tener varios usuarios.

solo crea una tabla con estos campos: id_detallemensajes (llave primaria), mensajes_enviados (llave foránea), mensajes_recibidos (llave foránea) y de igual forma si necesitas otro dato pues lo agregas.

No se si te di alguna idea?

Etiquetas: mensajes, relacionar, tabla, tablas, usuarios
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 02:08.