4 votes

Conception de base de données pour la messagerie interne (comme le message facebook)

Dans la conception de base de données suivante, comment puis-je marquer un message non lu, afin de savoir qui a lu le message, soit l'expéditeur et le destinataire ?

(c'est-à-dire que lorsqu'une personne X envoie un message à une personne Y, le message sera marqué comme non lu pour la personne Y jusqu'à ce que la personne Y lise le message, mais il sera marqué comme lu pour la personne X parce qu'elle a envoyé le message).

MESSAGE

  • Id (PK)
  • Sujet
  • Contenu
  • MessageTypeId (FK) - Message, mise à jour (diffusion globale sur le forum), notifications, etc.
  • UserId (FK) - créateur
  • CreateDate
  • ReadDate

MESSAGE_COMMENTAIRE

  • Id (PK)
  • MessageId (FK)
  • Contenu
  • UserId (FK) - créateur
  • Date de création

UTILISATEUR

  • Prénom
  • Nom de famille
  • Nom d'utilisateur :
  • Mot de passe
  • IsActive
  • etc...etc...

MESSAGE_TYPE

  • Id
  • Code
  • Nom

EDIT : il semble que le design soit incomplet.

1voto

Arjun Points 767

Vous pourriez ajouter un Read qui relie l'ID de l'utilisateur et l'ID du message. Lorsqu'un message est créé, l'application introduit automatiquement l'ID utilisateur du créateur et l'ID message. Ensuite, lorsque le récepteur lit le message, il enregistre le ReceiverID et le MessageId.

Ainsi, bien qu'il n'y ait pas d'enregistrement pour ReceiverID et MessageID, le message apparaîtra non lu pour le destinataire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X