我需要跟踪用户的所有登录信息,这样每次登录时我都会记录他们这样做的时间戳。最有效和最好的方法是什么?
我总是通过在users表中创建一个文本字段来存储它,该文本字段存储由字符分隔的unix时间戳。每次登录时,都会将另一个时间戳添加到最后。
1243453458|1255476933|1263453743|1318495068|
这是一种不好的方式吗?每次用户登录时,我都会想到一个单独的登录表,每次登录都是一种过度杀伤,并且在检索此信息时会对数据库造成更大的压力。
请记住,我在PHP中处理这些时间戳,并使用数据中的jQuery创建图形。
答案 0 :(得分:5)
是的, 是一种存储任何内容的可怕方式,包括时间戳,还有更好的方法可以做到这一点。即使是最简单的表也会给你带来更好的性能:
user_id (int) | last_login (timestamp)
换句话说,通过尝试优化应用程序(基于不正确的假设 - “另一个表太过紧张”),你已经对它进行了悲观化,提出了一个全面低效的解决方案。不要过分复杂化;如果有疑问,请勾选两个选项并亲眼看看。
答案 1 :(得分:4)
将数据放入数据库中的单独表格可能会更好,例如:
members_logins
member_id (int) | timestamp (timestamp)
这意味着更容易进行操作。
答案 2 :(得分:0)