Conception de base de données pour e-mail système de messagerie

Je veux faire un e-mail système de messagerie comme gmail ont. Je voudrais avoir l'option suivante: Étoilé, de déchets, de Spam, Projet de, lu, non Lu. Droit maintenant, j'ai le dessous de la structure suivante dans ma base de données :

CREATE TABLE [MyInbox](
    [InboxID] [int] IDENTITY(1,1) NOT NULL,
    [FromUserID] [int] NOT NULL,
    [ToUserID] [int] NOT NULL,
    [Created] [datetime] NOT NULL,
    [Subject] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Body] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [IsRead] [bit] NOT NULL,
    [IsReceived] [bit] NOT NULL,
    [IsSent] [bit] NOT NULL,
    [IsStar] [bit] NOT NULL CONSTRAINT [DF_MyInbox_IsStarred]  DEFAULT ((0)),
    [IsTrash] [bit] NOT NULL CONSTRAINT [DF_MyInbox_IsTrashed]  DEFAULT ((0)),
    [IsDraft] [bit] NOT NULL CONSTRAINT [DF_MyInbox_Isdrafted]  DEFAULT ((0))
) ON [PRIMARY]

Mais je suis confronté à quelques problèmes avec la structure ci-dessus. Pour l'instant, si un utilisateur a envoie Un msessage à l'utilisateur B je suis le stockage d'une ligne dans cette table, Mais si l'utilisateur B supprime le message, il est supprimé frm de l'utilisateur Un message envoyé trop. C'est faux, je veux exactement comme normale, e-mail système de messagerie ne. Si supprime Un message à partir de son élément envoyé alors B ne doivent pas être supprimés à partir de sa boîte de réception. Je pense sur d'autres problème ici qui viendra supposons qu'un utilisateur A envoyé un mail à 500 utilisateurs à la fois si comme pour mon design, j'aurai 500 lignes en double dans des organismes de je.e pas une mémoire efficace moyen de stocker de. Pourriez-vous les gars merci de m'aider dans makeing la conception d'un système de messagerie ?

InformationsquelleAutor AsifQadri | 2010-07-30