Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Benutzernachrichtensystem

Ich würde vorschlagen, mindestens Folgendes zu haben:

Benutzer, Threads, Nachrichten

  • Alle Nachrichten hätten einen Thread
    • Fremdschlüssel:thread_id
  • Alle Threads hätten mindestens eine Nachricht und mindestens einen Empfänger (sowie einen Absender)
    • Fremdschlüssel:to_user_id, from_user_id, message_id

Von dort aus könnten Sie Ihrem Thread einfach ein paar Flags zuweisen (to_user_deleted, from_user_deleted), die entsprechend aktualisiert würden.

Natürlich gibt es noch viel mehr Dinge zu beachten, z. B. welche Dinge Sie berücksichtigen möchten. Zum Beispiel:

  • Möchten Sie statt der Startnachricht die aktuelle Nachricht anzeigen?
  • Möchten Sie Benutzern erlauben, einzelne Nachrichten oder nur Threads als gelesen zu markieren?

All dies müssen Sie beim Entwerfen Ihrer Datenbank berücksichtigen.