目前,在我们的数据库方案的初始实施中,有以下电子邮件消息表的实现:
EMAIL_MESSAGE
id replyOfId forwardOfId subject date
1 NULL NULL text 11
2 1 NULL text 12
3 2 NULL text 13
4 1 NULL text 12 // new email thread was started in this row
...
目前为了识别线程,存在复杂的逻辑,应该多次命中db以便通过replyOfId
或forwardOfId
提取子记录
最好知道哪种方式可以优化。
为了创建具有以下映射的附加表,我考虑了一些方法:
EMAIL_MESSAGE_THREAD
messageId messageThreadId
1 11
2 11
3 11
1 22
4 22
但不确定我是否真的需要采用这种方法最好的方法是了解愿景如何实施。