我在MySQL数据库中的两个表如何检查当前用户是否已经喜欢或不喜欢的评论
- tbl_comments
- tbl_user_votes
有在tbl_user_votes三个字段
1. comment_id, 2. user_id, 3.vote_type ('L' OR 'D') (L for Like, D For Dislike)
我有一个分页方案,根据我的每个网页有20个mments。每条评论都有一个喜欢和不喜欢按钮。当登录用户点击喜欢或不喜欢时,插入三个值tbl_users_votes, 1. comment_id, 2. user_id, 3. vote_type (L OR D).
我希望当页面重新载入时,所有评论他点击了“喜欢”或“不喜欢”,必须显示“你喜欢”或评论下的“你不喜欢”。
我的问题是,我不打算为这个问题做一个有效的算法。 我曾想过类似的解决方案。
我必须为每个评论运行一个SQL查询,例如"SELECT * From tbl_user_votes where comment_id = xyz and user_id = xyz"
,然后检查是否存在针对该user_id和comment_id的某个值。如果存在,那么我检查的价值和Put和如果这样
If(vote_found)
If(vote_type=='L')
echo "You Like"
else if(vote_type=='D')
echo "You Dislike'
每个评论,但其他条件,我认为这是不是这样做的有效途径。它看起来非常内存和耗时的过程,就好像页面上有20条评论,每条评论对数据库的sql查询都非常昂贵。
任何人都可以有一些更好,更有效的方式来处理这个问题。
1.获取所有帖子。 2.通过帖子,获取他们的ID。 3.获取所有选票'WHERE comment_id IN(...)'。 4.关联数据。 - 或者,你可以用* 1 *'LEFT JOIN'查询。 – deceze 2013-03-04 07:02:29
我遇到了这个问题很多时间,我无法找到一个有效的解决方案。找到解决方案很容易,但并不容易。我想我们可以使用nosql DB来做这样的事情。有任何想法吗? – Tony 2013-06-19 19:36:34