hmmm....
mira, si fuera yo pondría otra columna indicando el tipo de mensaje que es... digamos, que si el valor es cero entonces corresponde a un chat publico...
si es uno, entonces se trata de un privado... ahora, dicha tabla de mensajes debe tener un ID del emisor, así como un ID del receptor... claro, también una columna indicando el estado del mensaje: pendiente, enviado, cancelado, etc....
de ahí en fuera es usar tu imaginación, y la realidad es que todo se hace en base a relaciones...
pero bueno... me decías que se trata PHP pero... ¿esto que tiene que ver con PHP?
R: nada, es solo diseño de base de datos, etc, etc...