gpt4 book ai didi

mysql - 从时间戳获取登录用户

转载 作者:行者123 更新时间:2023-11-29 09:14:57 24 4
gpt4 key购买 nike

我的数据库中有 2 个表。跟踪用户何时登录:id、名称、IP 和时间戳。另一个是一系列事件:id、事件名称、IP 和时间戳。

有没有一种简单的方法可以查看特定事件中哪个用户登录了?

例如,如果我有

id  l_ip          l_user  l_time
0 172.16.1.10 ces77 2010-12-14 09:02:12
1 172.16.1.64 ces34 2010-12-14 10:06:43
2 172.16.1.10 ces47 2010-12-14 11:10:52

id  e_name   e_ip         e_time
0 remove 172.16.1.10 2010-12-14 09:10:33
1 run 172.16.1.64 2010-12-14 10:15:10
2 change 172.16.1.64 2010-12-14 10:20:32
3 run 172.16.1.10 2010-12-14 12:55:59

我可以运行一个查询来为我提供每个事件的用户,以便它生成吗?

id  e_name   e_ip         e_time               l_user
0 remove 172.16.1.10 2010-12-14 09:10:33 ces77
1 run 172.16.1.64 2010-12-14 10:15:10 ces34
2 change 172.16.1.64 2010-12-14 10:20:32 ces34
3 run 172.16.1.10 2010-12-14 12:55:59 ces47

最佳答案

处理此问题的最佳方法是通过访问数据库的代码。它可能不会太快,因为无法获得有效回答问题所需的数据;您必须查看记录,然后针对每条记录回答问题“此时哪个用户登录了?”。

建议可能对架构执行一些去规范化,并允许用户信息出现在两个表中。如果您使用用户名作为用户表的键,那么您可以将 l_user 列设置为指向该表的 FK。当然,您仍然需要编写一个程序来更新表以包含您首先要查找的数据,并且没有办法使其对所有时间戳 100% 正确,除非您可以保证某些事情,例如“用户在时间戳 A 和 B 之间没有注销”等等。

我会首先编写一个程序来获得您现在想要回答的问题的答案,然后我会强烈考虑对数据结构进行一些增强,以便您始终可以用无非是单个 SQL 查询。本质上,迭代每个事件,查找该事件发生时谁登录,并将其写在某个地方(当然,除非您有能力将该信息保留在内存中以便稍后使用)。

关于mysql - 从时间戳获取登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com