2016-08-12 68 views
1

我正在處理一個電子郵件項目。我想像gmail一樣在線程中顯示電子郵件。可靠和準確的電子郵件線程結構?

什麼是在線程中顯示郵件的最佳方法?

我已經選擇jwz threading algorithm。但是看起來這個算法是爲沒有數據庫的項目編寫的。這個算法專注於這三個頭部鍵。 Message-ID,In-Reply-ToReferences

有人能告訴我什麼是使用mysql數據庫實現線程的正確,高效和最準確的方法。

我必須爲線程和引用使用單獨的表嗎?

如果可能給我一些示例mysql查詢。所以我可以更好地理解。

謝謝。

回答

0

任何留言板設計,如wordpress等也應該適用於電子郵件。我還拿出一個設計:

email.id user_id subject status folder created updated ...other info you'd save 
1  123  Hello New  Inbox Y-m-d.. Y-m-d.. ... 
2  3456 World Replied Inbox ... 

reply.id email_id reply_to_id user_id created email_txt ip ... 
10  1  0   890  Y-m-d.. Hi ... 
20  2  0   5678 ... 
30  2  20   3456 ...  Replyto 2 
55  2  30   5678 .... Replyto 3 

所以在你email.folder.index頁:

SELECT * FROM email WHERE user_id = 12345 ORDER BY updated desc LIMIT 50 

而當你點擊一個索引頁上的電子郵件,電子郵件轉到詳情頁面:

SELECT * FROM reply WHERE email_id = 2 ORDER BY created, reply_to_id 

關鍵的魔法在於樹是基於reply_to_id建立的