我有一个Posts
表,包含字段title
, contents
, rating
, no_of_comments
, author_id
。当用户对帖子投否定票时,评级字段将递减,反之亦然。
我也缓存显示查询,它显示了最近的帖子,它与表Authors
有关。问题是,评级领域需要经常更新,即有很多的赞成和反对。所以我需要重建缓存,每次用户上/下的帖子。我认为这是一种浪费,因为在整个缓存数据中只有一个字段被更新。所以我想知道是否有解决这个问题的方法。顺便说一句,我使用基于文件的缓存
如果你规范化你的数据结构,你将能够缓存静态部分-即"Post",有"Post属性"或任何你决定使用,是动态的。
注释数应该通过计算"comments"表中的注释数来得出。
好的。因此,您的解决方案是向PHP打开ajax请求,执行以下操作:
未经考验的
while (array_pop(mysql_fetch_array(mysql_query("SELECT count(*) FROM `posts` WHERE `ID` = '$latest_id_prediction'"))) == 0) {
sleep(10);
}
echo array_pop(mysql_fetch_array(mysql_query("SELECT * FROM `posts` WHERE `ID` = '$latest_id_prediction'");
这将每10秒检查一次是否有新的帖子,如果有,它将回显帖子信息。您要做的就是不超时地向该页发出ajax请求,并在得到回复时更新该页。当您收到回复时,打开一个新的连接。