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