删除属于同一用户的另一条记录在十分钟内创建的所有MySQL记录

问题描述 投票:0回答:1

我有一个Rails应用程序表,其中包含usersprojects上的视图。每条记录都有user_id(bigint,外键),project_id(bigint,外键)和created_at(datetime)。

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

我打算更新控制器,以便在一个十分钟的时间内仅由给定用户记录给定项目的视图 - 对视图进行去抖动。

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

mysql ruby-on-rails mariadb
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.