Автоматическое удаление сообщения

У меня есть веб-сайт с рекламным постом, и я хочу добавить функцию, при которой объявление меняет статус с «активного» на «неактивное» через 30 дней. Итак, каким должен быть запрос для этого, или JavaScript справится с этой задачей?

Также скажите, пожалуйста, как это сделать.

Вам необходимо установить на своем сервере задание cron, которое будет запускать определенный код для изменения статуса публикации.

Marco 21.07.2018 18:33

Вы стремитесь просто не возвращать просроченные объявления с запросами SELECT или вы хотите их удалить? В любом случае в решении SQL обычно используется предложение WHERE для идентификации объявлений, срок действия которых превышает 30 дней с текущей даты.

Dan Guzman 21.07.2018 18:33
Google - это инструмент, который вы ищете.
Roshana Pitigala 21.07.2018 18:33

В зависимости от версии SQL Server, которую вы используете, также можно использовать запланированное задание «обслуживания рекламы».

Lmu92 21.07.2018 18:37

MySQL <> SQL Server, какой фактически вы используете? Я удалил для вас конфликтующие теги. Пожалуйста, обновите их соответствующим образом.

Larnu 21.07.2018 18:38

@DanGuzman Мне нужно обновить базу данных, поскольку я дал людям возможность активировать ее снова, если они захотят.

Kalpesh Shende 21.07.2018 18:56

Зачем нужно обновлять базу по истечении срока? Укажите пункт WHERE, который я предложил, чтобы возвращались только объявления с истекшим сроком действия. Чтобы повторно активировать просроченное объявление, измените срок действия.

Dan Guzman 21.07.2018 19:05

@Larnu Я использую сервер MySQL.

Kalpesh Shende 21.07.2018 19:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

30 дней - это большой срок. По сути, есть два метода.

Первый - использовать регулярно запланированное задание, которое изменяет статус объявлений. По сути, примерно так:

update ads
    set status = 'inactive'
    where create_date < current_timestamp - interval '30 day';

(Точный синтаксис и ссылки на таблицы / столбцы зависят от вашей системы.)

Второй способ - создать представление:

create view v_ads as
    select a.*
    from ads a
    where create_date > current_timestamp - interval '30 day';

При этом объявления выбираются только за последние 30 дней. Вам никогда не придется обновлять базу данных, и вы можете настроить временной интервал, когда захотите.

Другие вопросы по теме