ユーザーが投稿を作成し、他のユーザーがこれらの投稿にいいねとコメントできるアプリを作成しています。この機能を実現するために、POSTS、LIKES、COMMENTS などのテーブルを使用しています。 .
投稿には、postId、content、userWhoMadeThePost、dateOfPosting などのフィールドがあります。
LIKES には、id、postOnWhichLikeWasMade (POSTS(postId) への外部キー)、userWhoLiked、dateofLike として filelds が含まれます。
コメントには id、content、postOnWhichCommentWasMade (POSTS(postId) への外部キー)、userWhoCommented、dateOfComment があります。
最も人気のある投稿 (いいね! とコメントの数が最も多い投稿) を取得したい。
- これを行う最初の方法は、人気のある投稿へのリクエストが行われるたびに、投稿数と各投稿のいいね! をカウントすることですが、数百万の投稿がある場合、これは非常に時間がかかる可能性があります.
- これを行うもう 1 つの方法は、「noOfLikes」と「noOfComments」を POSTS テーブルに含めることです。そのため、人気のある投稿を取得するには、投稿テーブルにのみアクセスする必要がありますが、このアプローチの問題は、ユーザーがコメントを作成するたびに発生することです。投稿後、POSTS テーブルの 'noOfComments' をインクリメントし、COMMENTS テーブルにエントリを作成する必要があります。問題は、POST テーブルへのインクリメントが正常に行われたときに発生し、COMMENTS テーブルへの変更を行う前に接続が失われます。その場合、POST および COMMENTS テーブルに間違ったデータが表示されます。
これを行う方法?