は私がログインログアウトログを保持するためのテーブル構造は何ですか?
Field Type
login_id int(10) NOT NULL
platform varchar(50) NOT NULL
browser varchar(50) NOT NULL
ipaddress varchar(50) NOT NULL
last_login datetime NULL
last_logout datetime NULL
を次のようにloginlogのテーブルを持っている。しかし、この構造の上に、私は私がログイン時間を追加することができますが、そのハードログアウト時間のためにそれを更新することを混同しています。ログは頻繁になり、プライマリキーはすぐに最大値に達するので、私はプライマリキーを追加していません。何が最善の方法でしょうか?助けてください。
"およびプライマリキーがすぐに最大値に達する " - これが問題であれば、大きな問題があります。 – Amber
'INT'は' 2147483647'まで異なる値を格納できます。 1秒に1回ログインしていても、login_idが枯渇するまで68年が必要です。この問題が発生した場合は、単に 'BIGINT'に更新するか、ログをクリアしてください。 'BIGINT'は' 9223372036854775807'までサポートしています。毎秒100万人のユーザがログインしていても、あなたの新しい制限に達するまでには300,000年も掛かりません。 – Basti
'session_id'をフィールドとして追加してログアウトするときに、対応するセッションIDでログアウトを更新してください。これにより、異なるブラウザ/マシン上の複数の同時ログインも解決されます。 –