未读私人消息回复的通知计数

时间:2012-01-12 19:56:03

标签: mysql database-design join count

我有一个使用PHP和mySQL通知的私人消息系统。

数据库表包含以下字段(并非全部列出)--- message_tbl:

MessageID
senderUserID
RecUserID
Message
Subject
DateTime
Status - whether read or not i.e 0/1

所有回复都存储在第二个表中,因为每条消息都会创建一个帖子。父消息中存在一个线程,因此每次加载父消息时,其所有回复也都会加载它。 第二个表看起来有点像: - replies_tbl

messageID - FK
senderUserID
rstatus - how should i use this?
Mesage
DateTime

我需要显示所有未读消息的计数。 目前我运行一个sql count函数来从message_tbl获取总未读消息,其中status为0,userid等于RecUserID,这是一个简单的部分。

但我有一个小问题是如何获得回复表的计数?数据库设计可以改进吗?

谢谢你们。

1 个答案:

答案 0 :(得分:1)

正如我所看到的,回复本身就是一条消息,为什么它会进入一个单独的表格。回复回复会怎么样?看起来你在这一点上会有一个空FK。

我的第一个想法是:

  • 将“添加父项”列添加到“消息表”
  • 将根消息的ParentID设置为0
  • 如果是回复,则将ParentID设置为MessagesID

使用该结构,您可以轻松跟踪对回复的回复,并且线程可以继续深入到您想要的范围......

只是我的想法,但是......