質問: あるホームページにユーザがアクセスしてきた時、以下の3つの情報をDBに入れようとしています。 ・ユーザのIPアドレス ・ユーザのリファラ(どういうURLのページからホームページに来たか) ・アクセスした年月日時分秒 この3つの情報が全て同じということはまずないだろうとは思いますが、もし全てが同じアクセスが発生した場合を懸念しています。 例えば大きなマンションの各部屋が同一LANで管理され、外部にアクセスするとき全てのアクセスが同一のIPアドレスで扱われるというような場合で、別々の部屋のユーザが、ネット上の同じリンクをたどって、たまたま秒数で同一時刻にアクセスしたという時もありえるのではないかと考えます。 こういう場合は、別々のユーザからのアクセスなのに同一アクセスとして扱われてしまいます。 みなさんはこのような問題で悩んだことはないでしょうか。 この場合、どうすればいいと思いますか。
回答: あくまで一例ですが、私の場合はユーザごとのログを調べるテーブルとなります。 ``` list($msec, $sec) = explode(" ", microtime()); $t = $sec; $s = sprintf("%02d", floor($msec * 100)); $result = date("YmdHis",$t).$s; echo $result; ``` ``` mysql log table マイクロ秒 IPアドレス 年月日時分秒 ページ引数 ユーザID 2016012216311004 192.168.0.1 2016-01-22 16:31:10 ページ引数 user00001 ``` のようにしています。(マイクロ秒も重複OK) このユーザIDはアカウントを登録したとき作成されたユーザIDとしています。 このlogテーブルを利用して別にユーザごとのアクセス状況を調べるものに出力します。