私のページには好き嫌いのシステムがあります。
データベース テーブル:
1.) 投稿ごとに一意の ID を持つ投稿と、それを作成したユーザーの user_id (コンテンツ、タグなどの他の情報と共に) を含むもの。
2.) 少なくとも次のフィールドを持つ likes と呼ばれるテーブル、ID、post_id (好きまたは嫌いな投稿テーブルの投稿に対応)、user_id (好き/嫌いを行ったユーザー テーブルのユーザーに対応)、ステータス (0 または 1、0 は投稿が好き、1 は投稿が嫌い)。
ユーザーが投稿を気に入った場合、user_id と post_id を使用して行を likes テーブルに挿入し、ステータスを 0 に設定します (または 0 がデフォルトであるため空のままにします)。ユーザーが投稿を気に入らない場合は、同じことを行いますが、ステータスを 1 に設定します。
そうすれば、投稿ページで、投稿を高く評価または低く評価したすべてのユーザーの数を取得できます。ユーザーのプロフィール ページでは、ユーザーが好きまたは嫌いなすべての投稿を取得できます。好き嫌いの多い投稿をランク付けすることもできます。または、好き嫌いの多いコンテンツを投稿した特定のユーザーをランク付けすることもできます。
データベースに既にレコードがある場合、ユーザーが投稿を好き/嫌いにならないようにしてください。(基本的に、post_id が現在の投稿と等しく、user_id がログインしているユーザーと等しい like テーブルのレコード数を確認するだけです)
投稿テーブルを相互参照して、投稿の作成者の user_id を取得します。投稿者の user_id がログインしているユーザーと同じ場合、またはユーザーが現在ログインしていない場合、投票を許可しないでください。
これらすべてを実行するクエリは単純ですが (単純に SELECT * または SELECT user_id)、それが基本的な考え方です。