Web サイトの既存のコメント セクションに、Facebook に似た Like/Unlike システムを作成しようとしていますが、システムの設計に助けが必要です。
現在、ウェブサイトのすべての製品にはコメント セクションがあり、メンバーはコメントを投稿したり、気に入ったりすることができます。各メンバーが投稿したコメントの数と、各メンバーの各コメントがいいね! を獲得した数を知る必要があります。もちろん、分析目的で、誰がどのコメントを気に入ったかを知る必要があります (一部は、ユーザーが同じコメントを複数回気に入らないようにするためです)。
Like システムを現在のコメント モジュールに実装する単純な方法は、CommentID と UserID への外部キーを持つ新しいテーブルをデータベースに作成することです。次に、ユーザーがコメントに「いいね」を付けるたびに、ターゲット コメント ID とユーザー ID を含む行をこの新しいテーブルに挿入します。
これはうまくいくかもしれませんが、膨大な量のコメントとユーザーがこのテーブルを急速に拡大させ、この巨大なテーブルからレコードを取得したりカウントしたりするのは遅くなり、非効率的になります。いずれかの列にインデックスを付けることができますが、それがどれほど効果的かはわかりません。ウェブサイトには100万件以上のコメントがあります。
PHPとMySQLを使用しています。巨大なデータベースを持つこのようなシステムの場合、Like システムをより最適化して安定させるには、どのように設計すればよいでしょうか?