mysql データベースに 2 つのテーブルがあります
- tbl_comments
- tbl_user_votes
tbl_user_votes には 3 つのフィールドがあります
1. comment_id, 2. user_id, 3.vote_type ('L' OR 'D') (L for Like, D For Dislike)
ページネーション スキームがあり、それによると、各 Web ページには 20 個のコメントがあります。各コメントには、好き嫌いボタンがあります。ログインしているユーザーが「好き」または「嫌い」をクリックすると、3 つの値が挿入されます。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 else 条件を確認します
If(vote_found)
If(vote_type=='L')
echo "You Like"
else if(vote_type=='D')
echo "You Dislike'
しかし、これはこれを行う効率的な方法ではないと思います。ページに20個のコメントがあり、各コメントでデータベースへのSQLクエリが非常に高価であるかのように、非常にメモリと時間のかかるプロセスに見えます。
この問題に対処するためのより良い、より効率的な方法はありますか。