0
我正在研究一個消息系統,其中一個方面是我向所有用戶廣播消息。我沒有爲每個用戶在表中插入消息,而是有一個表包含消息的單個副本,另一個表跟蹤用戶的讀取/刪除。MySQL/PHP廣播消息系統
信息表
message_id (primary,auto)
dt
message
Messages_Status表
message_id (int,11)
user_id (int,10,indexed)
user_read (tint,1)
user_delete (tint,1)
--> an index on (message_id,user_id)
我試圖以獲取登錄的用戶未讀郵件的數量。如果messages_status表中沒有特定消息和用戶的記錄(用戶沒有閱讀它),或者如果user_read = 0的消息和用戶有記錄,那麼也是如此。
由於記錄最初不存在於狀態表中,因此將找不到用於計數的user_id = 123。我也嘗試過ms.message_id爲空或(ms.user_id = 123 AND ms.user_read = 0),但只要不同的用戶將該消息標記爲該記錄的message_id被輸入到狀態表中, ms.message_id IS NULL語句無效。 – Jonathan