我正在开发一个消息传递系统,其中一个方面是让我向所有用户广播消息。我没有将消息插入到每个用户的表中,而是有一个包含消息的单个副本的表和另一个跟踪用户读取/删除的表。
消息表
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 的记录,则也计算在内。