SQL,在longtext字段中concat()日志数据是不是很糟糕?

时间:2011-03-30 17:51:19

标签: php mysql logging longtext

我正在构建自己的身份验证系统。现在我有我的数据库设置来记录每个登录时间戳:

$query = 'UPDATE `users` SET login_log = concat(login_log, ?) WHERE userKey = ? LIMIT 1 ';
$vars = array(time().',', $this->userKey);  
$QH = $this->DBH->prepare($query);
$QH->execute($vars);

使用concat()来记录longtext字段中的数据是不是很糟糕? 我应该以不同的方式做这件事吗? 使用这种方法可能会遇到什么问题吗?

1 个答案:

答案 0 :(得分:0)

我唯一可以想到的是,除非有业务需要只有一个login_log字段,否则没有理由连接,特别是如果你想对其后的时间部分执行约束...在获得所需的time()组件之前,你必须解析所有其他日志文本(这里是其他时间)。

您可以更轻松地规范化数据并添加自动增量int PK,然后是userKey字段和login_LogDate字段。每次登录后,您都可以在用户表中插入用户名和当前时间。然后,您可以轻松找到min,max,top Nth登录等,而不是将其拆分。