algorithm - 管理每个用户的访问日志的最佳方式是什么?

标签 algorithm logging

我想知道用户登录服务的历史记录。 我只是想查看用户每天、每周和每月的登录频率。

目前,用户ID和连接时间存储在DB表中。

行太长,不必要。

如果还有其他好的方法,请引用。

感谢您的关注。

最佳答案

假设语言的解决方案:

您必须为每个用户保留两个数据项:

TimeStamp firstLoginOf(user_id) : returns time stamp of first login for given user
Integer totalLoginsOf(user_id)  : returns total number of logins for given user

数据必须存储在由 user_id 索引的文件或数据库中。 每当相应的用户登录时,登录总数就会增加。

然后您可以按如下方式计算所需的数据:

Float loginsPerDay(user_id) {
    return totalLoginsOf(user_id) / asDays( now() - firstLoginOf(user_id) )
}

Float loginsPerWeek(user_id) {
    return totalLoginsOf(user_id) / asWeeks( now() - firstLoginOf(user_id) )
}

Float loginsPerMonth(user_id) {
    return totalLoginsOf(user_id) / asMonths( now() - firstLoginOf(user_id) )
}

关于algorithm - 管理每个用户的访问日志的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57368690/

相关文章:

algorithm - 最大流量和最小切割。我做对了吗?

c++ - 使用dectlype推导出模板元素类型中的数据类型是否正确?

algorithm - 为什么在广度优先搜索中需要访问状态?

regex - 删除Sublime中所有不包含字符串的行

java - Junit 测试日志语句

algorithm - 用最少的矩形填充多边形

algorithm - 为什么主成分分析给我截然不同的结果?

bash - 命名管道在脚本中过早关闭?

java - 未在 linux/EC2 实例中创建日志文件

MySQL 过滤器 general_log