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

时间:2019-08-06 03:51:11

标签: algorithm logging

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

当前,用户ID和连接时间存储在数据库表中。

不必要的太长行。

如果还有其他好的方法,请参考它。

感谢您的关注。

1 个答案:

答案 0 :(得分:1)

一种假设语言的解决方案:

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

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) )
}