我正在尝试设计一个邮件系统。我已经解决了我还没有解决方案的问题,但也许你可以指点我一些?我的问题是,如果我们为Inbox和Outbox提供两个不同的表,我真的没想到数据库模式应该是什么样子。在示例中,我们还必须具有Users和Messages表。所以从我的角度来看,我认为Message应该有两个用户ID(Users表中的主键)的外键,我们可以从中识别发送者和接收者。之后看起来没问题,但是如果我们开始认为我们必须确定哪个用户应该在收件箱或发件箱中有此消息?如果我们将拥有像id,sender_id和receiver_id,文本等消息字段,我们只会想到这一点。我不认为它是一个很好的可维护设计。例如,如果我们想让Message表不仅用于用户对话,而且在论坛或其他地方?如果我错了,请纠正我。欢迎任何帮助,建议,建议!
答案 0 :(得分:1)
看看Zimbra的灵感。它是开源的,使用MySql存储消息元数据,而实际消息存储在文件系统中。