首页 > 解决方案 > 删除属于同一用户的另一条记录在十分钟内创建的任何 MySQL 记录

问题描述

我有一个包含 on 视图的 Rails 应用程序usersprojects。每条记录都有user_id(bigint,外键),project_id(bigint,外键)和created_at(日期时间)。

该应用程序当前每次调用项目的“显示”操作时都会记录一次视图,这意味着用户可以(并且确实...)通过重复重新加载页面来增加每个项目的视图计数。

我计划更新控制器以在十分钟内仅记录给定用户对给定项目的视图 - 视图的去抖动。

我的问题是如何在 MySQL 中构造一个查询,以删除同一项目中同一用户在前一个记录的十分钟内所做的以前的“重复”记录?有可能吗,还是我只需要在 Ruby 中将其作为迁移或 rake 任务来完成?

标签: mysqlruby-on-railsmariadb

解决方案


你最好从源头解决这个问题(即在重新加载的情况下不为当前用户创建条目)。

您可以使用 created_at 上的 YEAR()、MONTH()、DAY() 和 MINUTE() 函数来选择或在您的情况下按分钟删除给定用户的同一年/月和日的记录。


推荐阅读