Mysql
 sql >> Base de données >  >> RDS >> Mysql

Système de messagerie utilisateur

Je suggérerais d'avoir au moins les éléments suivants :

Utilisateurs, Discussions, Messages

  • Tous les messages auraient un fil de discussion
    • clé étrangère :thread_id
  • Tous les fils de discussion auraient au moins un message et au moins un destinataire (ainsi qu'un expéditeur)
    • clé étrangère :to_user_id, from_user_id, message_id

À partir de là, vous pouvez simplement attribuer quelques drapeaux à votre fil (to_user_deleted, from_user_deleted) qui seront mis à jour en conséquence.

Il y a beaucoup plus de choses à considérer bien sûr, comme le genre de choses dont vous voulez tenir compte. Par exemple :

  • Voulez-vous afficher le message actuel plutôt que le message de départ ?
  • Voulez-vous autoriser les utilisateurs à marquer des messages individuels comme lus, ou uniquement des fils de discussion ?

Vous devez tenir compte de tous ces éléments lors de la conception de votre base de données.