Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 网站的新评论通知实现_Php_Mysql - Fatal编程技术网

Php 网站的新评论通知实现

Php 网站的新评论通知实现,php,mysql,Php,Mysql,我有一个网站,人们可以在那里发表帖子和评论。我想建立一个新的评论通知系统,这样当用户登录时,他可以看到他的帖子中新评论的数量 我的想法是添加一个“read”表,在其中存储用户id和注释id(表示用户id读取注释id)。但当表变大时,这可能会产生一些性能问题 实现这一点的最佳方法是什么?只存储未读评论的用户和评论ID如何?然后,当用户阅读评论时,您可以从表中删除该行。实现这一点的一种方法是只保存帖子和评论的创建日期,以及用户的“上次访问”日期(或“用户上次单击“显示新帖子”链接的时间) 然后,您只

我有一个网站,人们可以在那里发表帖子和评论。我想建立一个新的评论通知系统,这样当用户登录时,他可以看到他的帖子中新评论的数量

我的想法是添加一个“read”表,在其中存储用户id和注释id(表示用户id读取注释id)。但当表变大时,这可能会产生一些性能问题


实现这一点的最佳方法是什么?

只存储未读评论的用户和评论ID如何?然后,当用户阅读评论时,您可以从表中删除该行。

实现这一点的一种方法是只保存帖子和评论的创建日期,以及用户的“上次访问”日期(或“用户上次单击“显示新帖子”链接的时间)


然后,您只需获取所有日期比您在用户表中找到的日期更新的帖子和评论。

将帖子时间存储在通知表中,然后查找用户的最后一个活动(再次将值存储在用户表中)不是更好吗

$lastActivityTime = User->GetLastActivity();
$result = mysql_num_rows(mysql_query("SELECT COUNT(`id`) FROM `notifications` WHERE `postTime` > '$lastActivityTime'"));

祝您好运!

您可以为这些数据选择不同于mySQL的存储(例如:MongoDB)


或者,您可以通过pub/sub实现通知用户(使用pubsub,您不需要存储数据,只需通知即可)

我忘了提到用户可以回复评论,我得到了某种程度的多级评论。因此,当用户回复评论时,我需要为所有具有较高级别评论的用户向db添加记录。我认为这也会降低性能…但现在我怀疑这一点:)我考虑了上次访问,但“上次用户单击“给我看新帖子”从来没有出现在我的脑海中:)现在我开始考虑如何使它与你和大卫·扎斯拉夫斯基的想法完美结合。