Yo haría la estructura de las tablas de manera diferente, en vez de esto:
Código:
Mensajes:
mensaje_id
fecha_envio
titulo
contenido
estado ('leido', 'sin_leer') DEFAULT 'sin_leer'
Mensajes_Relaciones:
mensajes_relaciones_id
mensaje_id
de_usuario_id
para_usuario_id
Haría:
Código:
Mensajes:
mensaje_id
fecha_envio
titulo
contenido
usuario_id
Mensajes_Relaciones:
mensajes_relaciones_id
mensaje_id
para_usuario_id
estado ('leido', 'sin_leer') DEFAULT 'sin_leer'
El usuario que hace el mensaje lo lleva la tabla de mensajes y el campo estado va en la tabla de relacciones pues el estado va relaccionado a cada usuario al que va dirigido.
Primero creas el mensaje en la tabla de mensajes y despues cojes la lista de usuarios a los que va dirigido el mensaje y por cada usuario creas un registro en la tabla de Mensajes_Relaciones.
De esta forma tienes el control de qué usuario ha visto cada mensaje por ejemplo.
Espero haberme explicado.