这是更多地与数据库设计比asp.net具体而言,如您使用可能是一个Windows窗体应用程序的数据库结构,Silverlight应用程序或确实是一切!
我的这种方法是将有一个表称为 “消息”,其具有以下结构:
的MessageId INT NOT NULL IDENTITY
FromUserId INT NOT NULL(FK到用户表)
ToUserId INT NOT NULL(FK到用户表)
IsDraft TINYINT
标题NVARCHAR(...)
消息体NVARCHAR(...)
这样,您可以将所有邮件存储在一张表中,唯一的区别是它们是否为草稿,即它们是否对预期收件人(ToUserId
)不可见。
因此,要检索收件箱你会使用SQL类似
SELECT * FROM Message WHERE [email protected] WHERE IsDraft=0`
要检索某人的邮件草稿像
SELECT * FROM Message WHERE [email protected] WHERE IsDraft=1
A的用户通过
SELECT * FROM Message WHERE [email protected] WHERE IsDraft=0
发送的邮件
如果您想转移到“多个收件人”模式,您可以使用Message_Recipient
表轻松替换ToUserId
列,该表包含一个或多个包含MessageId
和ToUserId
对的记录。
来源
2011-02-07 08:41:19
Rob
感谢您的帮助。我知道了 – user575219 2011-02-07 21:03:05