pues entonces la cosa va bien... el analisis me parece ser el correcto... creo que para limitar lo que es mensajes guardados tienes antes de permitir guardar hacer un count de las 2 tablas(enviados y recibidos) luego sumar esos 2 count y ver si excede o no los 30 mensajes.. si es asi pues lo restringes y no le permites hacer nada.
Por otro lado lo de los mensajes a borrar lo podrias hacer borrando siempre y cuando cumpla con dos requisitos, que encuentre el ID del Mensaje y que encuentre el ID de Usuario, solo asi cuando encuentres los dos sera borrado solo ese mensaje.. ejm:
Recibido Enviado
Id User: U01 U02
Id Msg: M01 M01
Asi cuando elimines el msg del enviado del usuario2 estaras borrando solo el mensaje de el.. no se si me dejo entender.
Pues un pequeño detalle para terminar.. tu tabla mensajes creo que deberias llamarla Bandeja, y esta dividirse en Entrada y Salida.
Saludos y suerte
me interesaria y esperare por la solucion