22/02/2007, 19:16
|
| | Fecha de Ingreso: febrero-2007
Mensajes: 70
Antigüedad: 17 años, 9 meses Puntos: 1 | |
Re: Ayuda por FAVOR !!!! (diseño BD) llegué a una solución que parece funcionar pero tiene otros peros... usuario-----1(envia)N-----mensajes-----1(tiene)N-----destinatarios
esas serían las relaciones... cuando envío un mensaje realizo un insert a la tabla mensaje que sería esta:
id_mensaje
id_rte (remitente)
asunto
fecha
flag_destinos
flag_rte
texto_del_mensaje
y tambien un insert ala tabla destinatario que sería esta:
id_mensaje (fk) (PK)
id_destinatario (PK)
estado
el atributo flag_destinos sería el numero de personas que reciben el mensaje.. si se lo envío a 20 personas, flag_destinos = 20.... para que? cada vez que un destinatario borre el mensaje de su bandeja de entrada se elimina ese registro de la tabla DESTINATARIOS y además se le resta 1 a flag_destinos.
si yo borro el mensaje de mi bandeja de salida dejo flag_rte = 0, de esta forma cuando yo vea mi bandeja de entrada no me mostraria ese mensaje ya que la sentencia diria: when id_rte= mi id and flag=1 (para que te hagas una idea..
entonces....
el mensaje se borra definitivamente cuando ambos flag estan en 0....
no se si es lo mas optimo pero creo que funciona.. corregime por favor si no es asi...
pero sorpresa !!!!!! surgio otro problema... cuando le envío el mensaje a una persona se realiza un insert en la tabla destinatarios.. verdad?? si le envío el mensaje a 20 personas, son 20 insert, a 30 son 30 insert... la cantidad de insert es variable y ahi quede pegado ahora...
por que tendría que contar el numero de destinatarios antes de enviar los mensajes y eso no se como hacerlo... y eso es necesario tanto para saber cuantos insert voy a realizar como para saber que valor va a tener el atributo flag_destinos... SI SABES ALGO AVISAME...
PERO ME DESANIMÉ, la otra solución es penca pero facilita las cosas: dejar que un usuario envíe solo un mensaje a la vez.. ahí todo es mas facil... si pudiera conseguir el modelo de datos de los mensajes privados de vbulletin, pero no he podido encontrar nada en la web... saludos
Última edición por mreyesb; 22/02/2007 a las 19:35 |