Ver Mensaje Individual
  #10 (permalink)  
Antiguo 03/01/2009, 15:10
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Sistema de mensajes privados

hpg147, yo leeria con "alias" asi:

SELECT u.*, m.* FROM mp u, mp2 m WHERE u.usuario = 'usuario' AND u.tipo = 'carpeta' AND m.id = u.mensaje_id ORDER BY u.mensaje ID DESC LIMIT 20

si el ID de mensaje es con incremento automatico se supone que el orden tambien seria cronologico y me fio mas de solicitar el orden por la tabla primaria que por la unida, cabe decir que no soy muy ducho con esto de los JOIN.

Ahora, como alcaracion: las dos opciones (1 y 2 tablas) pueden representar problemas de espacio.

Usando 1 tabla, no todos los usuarios almacenan copia de sus mensajes enviados, pero esto puede "solucionarse" al poner un limite de mensajes para almacenar, digamos 50 en ambas carpetas.

Usando 2 tablas puedes enviar copias a muchos usuarios, pero debes tener en cuenta que cada que alguno lo borre de sus carpetas, verificar si el mensaje ya fue eliminado por todos los usuarios, para eliminarlo tambien en mp2

Por cierto, el DE y PARA yo los pondria en la tabla MP, dejando solo el autor en MP2, ya que si envias el mismo mensaje a varios usuarios, en MP2 solo creas 1 registro y en MP creas uno para cada destinatario.

Y no le veo mucho sentido a tener ID en MP, si es necesario crear un indice seria mejor buscar otra alternativa.

Edito: ignora la ultima linea, es mas facil marcar como leido, modificar, eliminar, etc. usando ID, sorry.
__________________
- León, Guanajuato
- GV-Foto