如何为网站实施私人邮件?

时间:2009-05-19 08:47:18

标签: c# asp.net email

您将如何实施Bebo / Facebook和其他社交网站等私人邮件功能?

您可以选择在会员的个人资料上发布公开评论,但您也可以发送私人邮件。

我正在考虑使用XML并将其存储为该特定用户记录中的字段。这听起来像个坏主意吗?

有人有更好的建议吗?我不确定哪种解决方案最好。

2 个答案:

答案 0 :(得分:2)

我可能误解了你想要的东西,但是如何创建一个邮件表,例如

  • 汇款人
  • 收件人
  • 主题
  • 消息
  • 已发
  • 阅读(bool)

然后当有人向某人发送私人消息时,只需在该表中添加一行。

答案 1 :(得分:2)

我强烈建议不要将消息存储在用户表的字段中。随着应用程序的增长,这很可能会导致性能问题。正如另一个答案所示,我将添加一个专门用于存储消息数据的表。下面是您的表可能是什么样的伪代码示例。

UserTable
{
    ID INT, -- a unique system generated ID
    USER_ID CHAR(20), -- also unique, this is a user provided ID
    FIRST_NAME CHAR(40),
    LAST_NAME CHAR(40),
    BIRTH_DATE DATE 
}

UserEmailTable
{
    ID INT, -- a unique system generated ID
    USER_ID CHAR(20), -- this ties the entry to the record on UserTable
    EMAIL_ADDR CHAR(128), -- user provided email
    PRIORITY INT, -- Specifies the users 0..N-th address
}

MailTable
{
    ID INT, -- a unique system generated ID
    SENDER_ID INT, -- this ties the entry to the record on UserTable
    RECIPIENT_ID INT, -- this ties the entry to the record on UserTable
    CREATE_DATE DATE,  -- record when the message was created by sender
    READ_DATE DATE,  -- record when the message was read by recipient
    PRIVATE BOOL, -- indicates if this is a private message
    MESSAGE BLOB -- the message body
}

请注意,这只是一个示例,可能无法解决您的申请的具体问题。

最后一个想法:您是否真的计划直接在字段中存储XML或使用某种XML< - > SQL映射工具?如果直接存储XML,则可能无法利用数据库的功能。您对性能的担忧是有效的,但是设计良好且非常好。调优数据库应该能够轻松地在单个表中处理数百万条记录。

希望有所帮助。