我創建了一個線程消息系統,很像gmail和facebook,其中收件箱列出了顯示主題,發件人姓名和最新郵件的時間戳的最新線索。創建一個線程式的私人消息系統,如Facebook和Gmail
這裏是我的表是如何設置:
users:
user_id
user_name
thread:
thread_id
title
to_id
to_keep
to_read
from_id
from_keep
date
message:
message_id
thread_id
to_id
from_id
message_text
date
當用戶創建一個新的消息,我在做什麼現在的問題是,它會在線程表一個新的線程,然後在新的消息消息表以及用戶是否響應線程,它會複製線程表中的當前線程,除了它交換to_id
和from_id
,然後基於此創建新消息。
此外,對於收件箱視圖,我只能根據user_id
查詢所有線程。所以類似SELECT * FROM thread WHERE to_id = 2 and to_keep = TRUE ORDER BY date DESC
或者如果我想查看發件箱中的郵件,它會是類似於SELECT * FROM thread WHERE from_id = 2 and from_keep = TRUE ORDER BY date DESC
。
如果用戶在有新消息時打開線程,則to_read更新爲真UPDATE thread SET to_read = TRUE WHERE thread_id = 4
。
我覺得我已經結束了這個過程,並且應該有更好的方法來做到這一點。
任何幫助或想法,將不勝感激。
這樣,我們只需從線程表中選擇所有內容,然後與用戶表進行連接即可顯示我需要的所有內容。不過,我覺得應該有更好的方式來做到這一點。
爲什麼線程需要to_id和from_id?消息是將發送者和接收者結合在一起的東西。線程只是消息的容器。或者我誤解了? –
不,你是對的。我只是在查詢時選擇了應該在收件箱中的所有線程,並且僅僅從線程中最近的消息中獲取信息。那有意義嗎? – bigmike7801