drtoaamk20278 2011-03-30 17:51
浏览 45
已采纳

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

I'm building my own authentication system. Right now I have my database setup to log each login timestamp by:

$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);

Is it bad to use concat() to log data in longtext field?
Should I be doing this a different way?
Are there any problems I might run into down the road with this method?

  • 写回答

1条回答 默认 最新

  • douzhuican0041 2011-03-30 17:59
    关注

    The only thing I can think of offhand is that unless there is a business need to only have one field of login_log, there is no reason to concatenate, especially if you want to perform a constraint against the time portion thereafter...you'd have to parse out of all of the other log text (here the other times) before getting the time() component you wanted.

    You could much easier normalize your data and add an autoincrementing int PK, followed by a userKey field and a login_LogDate field. After each login, you could insert into users table the user name and the current time. You could then easily find the min, max, top Nth login, etc. much easier than splitting it out.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配