mysql - 删除属于同一用户的另一条记录在十分钟内创建的任何 MySQL 记录
问题描述
我有一个包含 on 视图的 Rails 应用程序users
表projects
。每条记录都有user_id
(bigint,外键),project_id
(bigint,外键)和created_at
(日期时间)。
该应用程序当前每次调用项目的“显示”操作时都会记录一次视图,这意味着用户可以(并且确实...)通过重复重新加载页面来增加每个项目的视图计数。
我计划更新控制器以在十分钟内仅记录给定用户对给定项目的视图 - 视图的去抖动。
我的问题是如何在 MySQL 中构造一个查询,以删除同一项目中同一用户在前一个记录的十分钟内所做的以前的“重复”记录?有可能吗,还是我只需要在 Ruby 中将其作为迁移或 rake 任务来完成?
解决方案
你最好从源头解决这个问题(即在重新加载的情况下不为当前用户创建条目)。
您可以使用 created_at 上的 YEAR()、MONTH()、DAY() 和 MINUTE() 函数来选择或在您的情况下按分钟删除给定用户的同一年/月和日的记录。
推荐阅读
- c++ - 如何摆脱使用 Cmake + Conan 构建的 FreeGLUT MS Visual Studio 项目中的链接错误?
- javascript - 在节点 jd 错误中出现此错误:TypeError: Cannot read property '0' of undefined
- android - 尝试绘制获得 AAPT 的图像:错误:“myimage”与属性 src (attr) 参考|颜色不兼容。错误信息
- windows - 设置环境变量后在 Windows 上出现“bash: make: command not found”
- java - 尝试运行新的 Cocos-2dX android 项目时出现“java.lang.NullPointerException”
- azure-data-factory - 将数据工厂中的嵌套 JSON 转换为 sql
- python - Pandas:如何匹配/过滤来自 2 个不同数据帧的相同键/ID 值(重复项)并替换值?
- c - 如何正确处理 xcb 客户端消息
- google-api - 从 Google API 请求 Blogger 帖子时出现“404:未找到错误”
- node.js - 护照谷歌oauth2.0 - 访问和刷新令牌保存在哪里?