php - 应该用什么表结构来维护登录注销日志?

标签 php mysql database-design database-table

我有如下的登录日志表

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

但是在这个结构上我很困惑,我可以添加登录时间但是很难更新注销时间。我没有添加主键,因为日志很频繁,主键很快就会达到最大值。最好的方法应该是什么?请帮忙。

最佳答案

像这样在一行中同时包含登录和注销只是自找麻烦,因为它假设每个登录都有相应的注销,但事实并非如此。有时他们会在公共(public)计算机上登录并且永远不会退出,有时他们会打开一个匿名窗口并登录。

相反,我会将其简化为一种类型:

  • 登录名
  • 平台
  • 浏览器
  • IP地址
  • 日期
  • 输入(登录/注销)

关于php - 应该用什么表结构来维护登录注销日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697081/

相关文章:

mysql - 内部连接工作太慢 - 只在 phpmyadmin 中显示加载标签

ruby-on-rails - Rails - 如何存储项目的每次更新

php - PHP 的 mysql 扩展是否不支持 "FOR UPDATE"的事务?

php - CSS - 不适用于电子邮件模板的类

php - cakephp2.1 中的数据获取问题

MySQL 语法 - 选择基于多个参数的行?

mysql - 表示mySQL中两个用户之间的兼容性

php - 使用 "woocommerce_payment_complete" Hook 时获取产品 ID

php - 在 PHP 中,我想按数据库日期列中的日期过滤数据(时间戳类型)

mysql - 将 SQL 查询优化到表中的特定行