您将如何实施Bebo / Facebook和其他社交网站等私人邮件功能?
您可以选择在会员的个人资料上发布公开评论,但您也可以发送私人邮件。
我正在考虑使用XML并将其存储为该特定用户记录中的字段。这听起来像个坏主意吗?
有人有更好的建议吗?我不确定哪种解决方案最好。
答案 0 :(得分:2)
我可能误解了你想要的东西,但是如何创建一个邮件表,例如
然后当有人向某人发送私人消息时,只需在该表中添加一行。
答案 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,则可能无法利用数据库的功能。您对性能的担忧是有效的,但是设计良好且非常好。调优数据库应该能够轻松地在单个表中处理数百万条记录。
希望有所帮助。