Salut j'ai déjà fait un système similaire
Sauf que si j'ai bien compris, ton entité Chat correspond à ce que j'appelle moi l'entité Message.
Ensuite dans l'entité Message je stocke une valeur conversation_id
Et donc tu aura compris qu'il y'a une entite Conversation qui permet de récupérer tous les méssage lié à une conversation.
Et donc maintenant il te faut et il te suffit (Avant de pouvoir écrire un message) de vérifier s'il existe une conversation qui lie tes 2 utilisateurs.
Si elle existe tu lie ton nouveau message à cette conversation, sinon tu en crée une.