いいねまたは賛成システムの php/mysql バージョンを作成しようとしています。私は基本的にこれを行う方法を知っており、これを行う方法に関する他のスレッドを見てきました。唯一の問題は、ユーザーがステータスを複数回気に入ることを許可したくないということです。これを行うための最も効率的な方法は何だろうと思っていましたか?
私にはいくつかの選択肢があるので、私はそれについて考えましたが、おそらく何が最善か、より良い方法をお勧めするかを教えていただけます:
1)データベースに、このステータスが好きなすべてのユーザーの文字列表現を格納する列を格納できます。そうすれば、そのステータス/いいねの数を照会すると、その文字列を取得してトークン化し、ユーザーがそこにいるかどうかを確認することもできます。そうでない場合は、like を追加して文字列に連結します。
2) キーと値のペアを格納する新しいテーブルを作成します。したがって、user1 が user2 のステータスを気に入った場合、[user1, user2] 行をテーブルに追加し、再度気に入ろうとすると、その行が存在するかどうかを確認し、許可しません。ただし、これは問題になる可能性があると思います。特定の時点で 1000 のステータスがあり、すべての人が他の 999 のステータスすべてを「気に入った」場合、私のテーブルには約 100 万行が保存され、気に入ったかどうかを確認するときにクエリを実行する必要があるためです。 .