Удалить любые записи MySQL, сделанные в течение десяти минут другой записи, принадлежащей тому же пользователю - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть таблица для приложения Rails, содержащая просмотры users на projects.Каждая запись имеет user_id (bigint, внешний ключ), project_id (bigint, внешний ключ) и created_at (datetime).

В настоящее время приложение записывает представление каждый раз, когда "шоу" проектавызывается действие, означающее, что пользователи могут (и делают ...) увеличивать количество просмотров для каждого проекта, многократно перезагружая страницу.

Я планирую обновить контроллер, чтобы записать представление для данного проектазаданным пользователем только один раз за десять минут - отказ от просмотра.

Мой вопрос заключается в том, как создать запрос в MySQL для удаления предыдущих «дублирующих» записей, сделанных в течение десяти минут после предыдущей.одним и тем же пользователем в том же проекте?Возможно ли это, или мне просто нужно будет сделать это в Ruby как задачу миграции или рейка?

1 Ответ

0 голосов
/ 08 апреля 2019

Вам гораздо лучше решить эту проблему в источнике (т.е. не создавать запись для текущего пользователя в случае перезагрузки).

Вы можете использовать функции YEAR (), MONTH (), DAY () и MINUTE () для create_at, чтобы выбрать или в вашем случае удалить запись по минутам в тот же год / месяц и день для данного пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...