2010-03-08 11 views
0

J'essaye de concevoir un système de courrier. J'ai bégayé sur le problème que je n'ai pas encore de solution, mais peut-être que vous pouvez m'en indiquer quelques-uns? Mon problème est que je n'imagine pas vraiment comment le schéma de base de données devrait ressembler si nous avons deux tables différentes pour Inbox et Outbox. Dans l'exemple, nous devons également avoir des tables Utilisateurs et Messages. Donc, de mon point de vue, je pense que le message devrait avoir deux clés étrangères aux deux ID d'utilisateurs (clé primaire dans la table des utilisateurs) à partir de laquelle nous pouvons identifier l'expéditeur et le destinataire. Ensuite, cela semble correct, mais si nous commençons à penser que nous devons identifier lequel des deux utilisateurs devrait avoir ce message dans Inbox ou Outbox? La seule chose qui vient à l'esprit est que nous aurons des champs de message comme id, sender_id et receiver_id, texte et etc. Je ne pense pas que ce soit un bon design maintenable. Par exemple si nous voulons avoir une table de messages non seulement pour les conversations des utilisateurs mais sur le forum ou ailleurs? S'il vous plait corrigez moi si je me trompe. Toute aide, suggestion, conseil sont les bienvenus!Conception de schéma de base de données de messagerie

+1

Est-ce que c'est ce devoir? – Fionnuala

+0

Non, c'est un vrai projet – faya

Répondre

1

Regardez Zimbra pour un peu d'inspiration. Il est open source et utilise MySql pour stocker les métadonnées du message, tandis que les messages réels sont stockés dans le système de fichiers.

Questions connexes