Jag skulle föreslå att du åtminstone har följande:
Användare, trådar, meddelanden
- Alla meddelanden skulle ha en tråd
- främmande nyckel:thread_id
- Alla trådar skulle ha minst ett meddelande och minst en mottagare (liksom avsändare)
- främmande nyckel:to_user_id, from_user_id, message_id
Därifrån kan du helt enkelt tilldela ett par flaggor till din tråd (to_user_deleted, from_user_deleted) som skulle uppdateras därefter.
Det finns förstås många fler saker att tänka på, till exempel vilka saker du vill ta hänsyn till. Till exempel:
- Vill du visa det aktuella meddelandet i motsats till startmeddelandet?
- Vill du tillåta användare att markera enskilda meddelanden som lästa eller bara trådar?
Du måste ta hänsyn till alla dessa när du utformar din databas.