Structure de base de données pour le Web Système de Messagerie

Je veux faire un système de messagerie web comme facebook ont. Je pense déjà de nombreuses solutions pour la structure de base de données, mais ne savez pas quelle est la meilleure pratique pour elle. J'ai deux solutions, la première est l'utilisation de deux table de, le deuxième est à l'aide de trois de la table, mais faire un cycle dans le DÉPARTEMENT.

Première: Deux Table, où le message de la table se référer à lui-même

user
----------
id
name

message
--------------
id
from_id
to_id
message_id --> refer to this table itself, to make me know which message is the topic
subject
content
time
status --> inbox, outbox, archive
read --> read, unread

Deuxième: Trois de la Table, mais faire un cycle de erd

user
----------
id
name

message_header
--------------
id
from_id
to_id
subject
status --> inbox, outbox, archive
time

message
--------
id
message_header_id
content
time
read --> read, unread
author_id

Personnellement, j'aime cette structure, parce que c'est seulement en utiliser un en-tête de message et de nombreux message (le contenu). Le author_id lui-même ne peut pas être supprimé car j'en ai besoin pour savoir si le message est sur le côté gauche (en tant qu'expéditeur) ou à droite (en tant que récepteur). Ce système est juste pour deux personne système de messagerie.

En gros, cela de deux table est la même, mais quelle est la meilleure pratique à mettre en œuvre ce système de messagerie? Je vous remercie avant.

OriginalL'auteur deka | 2013-06-27