これを行うプラグインはありますか?そうでない場合、理論的には、この種の情報を追跡するmysqlデータベースを作成できますか?
たとえば、ユーザー名を主キーとするテーブルpost_viewsがあり、ユーザーが来るたびに、そのテーブルに投稿IDを持つ列の値が存在するかどうかを確認するとします。
含まれている場合は、何かを実行します...そうでない場合は、列を作成し、1などの値を割り当てます。
このようなことは実現可能でしょうか?申し訳ありませんが、私はmysqlnoobです。
ありがとう!
ええ、それは実行可能です、はい。
あなたは出来る:
ログインしているユーザーの場合:関係テーブルを作成します。たとえば、users_posts
id | user_id | post_id
そして、各投稿ビューで、このテーブルにユーザーIDと投稿IDを挿入します(必要に応じて、投稿が読み取られた日付などの他の情報を追加できます)。このテーブルへのクエリは、ユーザーが開いたすべてのページを示します。逆に、そのユーザーがページを表示したかどうかを確認することもできます。あなたが言ったことから、これはあなたが考えていたものよりも実行可能なテーブルスキーマです。
ログに記録されていないユーザーの場合:ユーザーIDを自由に使用できなくても、Cookieを使用できます。Cookieにユーザー情報(IP、UserAgentなど)と投稿IDを書き込みます。Cookieがクリアされない(または期限切れになる)限り、ユーザーが何を見たかどうかを知ることができます。甘さを増すために:ユーザーがログインするとすぐに、このCookieベースの情報をポイント2)のメソッドに変換できます。
考え直してみると、Cookieは必要ありません。ここでもデータベースを使用できますが、テーブルにはユーザーIDではなく他の情報が保存されます(同じテーブルに列を追加したり、新しいテーブルを使用することもできます)ログに記録されていないユーザー。後者を選択します)
ただし、IP、ユーザーエージェント、およびその他の情報は信頼性が低く、問題を引き起こす可能性があることに注意してください。最初の情報はさまざまなユーザーによって共有され、2番目の情報は簡単になりすまされる可能性があります。最善の行動は、このポイント3)を無視し、常にログインしているユーザーのみを追跡することです。そうすれば、問題が発生することはありません。