Je développe un nouveau site, et je dois faire des messages privés pour nos utilisateurs. J'ai déjà fait cela sur d'autres projets, mais la conception là-bas ne me semble pas juste (je ne peux pas avoir plus de deux personnes engagées dans un message par exemple). Alors, quelle est la «bonne» approche? J'aimerais offrir à mes utilisateurs la même fonctionnalité que Facebook (encore une fois, j'ai déjà fait ça mais ça me semble sale :)) Donc le système devrait supporter 2 utilisateurs ou plus dans une conversation et des messages de type thread.Conception de messages privés
Je pensais et une solution serait d'avoir deux tables comme ceci:
pm_messages: id | pm_messages_id | user_id | titre | contenu | date_time
pm_recipients: id | pm_messages_id | user_id | has_seen |
Je stockerais le contenu réel dans la table "pm_messages", et je stockerais les destinataires (y compris l'expéditeur d'origine) dans la table "pm_recipients".
Est-ce la bonne direction ou suis-je complètement hors de cela? Ce qui me dérange ici, c'est que les messages ne sont vraiment effacés que lorsque tous les destinataires ont supprimé le message, ce qui entraîne une logique de suppression délicate.
Quel est l'avantage de deux tables (la vôtre conversation et le message) par rapport à un pour les messages (mes pm_messages)? –
La conversation est comme une session de conversation. Il peut contenir beaucoup de messages. – tehvan
Vous pouvez le faire avec ma conception à, et c'est une table de moins. D'autres ups? –