有效检索PHP和MySQL中的投票系统

Adn*_*nan 10 php mysql

我有一个系统,注册用户可以对图片进行投票/投票评论.它与Stack Overflow的投票系统非常相似.

我将投票存储在一个表中,其值如下:

vote_id | vote_comment_id | vote_user_id | vote_date | vote_type 
Run Code Online (Sandbox Code Playgroud)

现在我有几个关于以下速度和效率的问题:

问题:一旦用户打开带有评论的图片页面,我需要该用户已经对评论进行了UP/DOWN投票以显示它; 评论旁边的"你投了票"或"你投了票"(在Stack Overflow中,投票图像突出显示).

我可能的解决方案:现在,当我打开一个图片页面时,我遍历每个评论,我也会遍历我的投票表并检查用户是否投票并显示状态(我将vote_user_id与用户的会话进行比较).

这有多高效?有没有人有更好的方法来解决这类问题?

Mar*_*ers 2

您正在循环浏览投票表吗?您是否将整个数据库读入内存然后循环遍历它?

您是否尝试过仅查询数据库中的相关数据?

SELECT vote_comment_id, vote_type
FROM vote
WHERE vote_user_id = 34513
  AND vote_comment_id IN (3443145, 3443256, 3443983)
Run Code Online (Sandbox Code Playgroud)