Ik stel voor om in ieder geval het volgende te hebben:
Gebruikers, Discussies, Berichten
- Alle berichten zouden een thread hebben
- buitenlandse sleutel:thread_id
- Alle discussielijnen zouden ten minste één bericht en ten minste één ontvanger (evenals afzender) hebben
- vreemde sleutel:to_user_id, from_user_id, message_id
Van daaruit zou je eenvoudig een paar vlaggen aan je thread kunnen toewijzen (to_user_deleted, from_user_deleted) die dienovereenkomstig zouden worden bijgewerkt.
Er zijn natuurlijk nog veel meer dingen waar u rekening mee moet houden, zoals met welke zaken u rekening wilt houden. Bijvoorbeeld:
- Wilt u het huidige bericht weergeven in plaats van het startbericht?
- Wilt u toestaan dat gebruikers afzonderlijke berichten als gelezen markeren, of alleen discussielijnen?
U moet met al deze aspecten rekening houden bij het ontwerpen van uw database.