Mysql
 sql >> Database >  >> RDS >> Mysql

Sistema di messaggistica utente

Suggerirei di avere almeno quanto segue:

Utenti, thread, messaggi

  • Tutti i messaggi avrebbero un thread
    • chiave esterna:thread_id
  • Tutti i thread dovrebbero avere almeno un messaggio e almeno un destinatario (oltre al mittente)
    • chiave esterna:to_user_id, from_user_id, message_id

Da lì puoi semplicemente assegnare un paio di flag al tuo thread (to_user_deleted, from_user_deleted) che verrebbero aggiornati di conseguenza.

Ci sono molte altre cose da considerare ovviamente, come il tipo di cose di cui vuoi tenere conto. Ad esempio:

  • Vuoi visualizzare il messaggio corrente anziché il messaggio iniziale?
  • Vuoi consentire agli utenti di contrassegnare singoli messaggi come letti o solo thread?

Devi tenerne conto durante la progettazione del tuo database.