Всем привет!
Предположим есть запись в бд и колонка, в которой отмечена дата удаления этой записи.
Как это реализовать? Если можно - в двух вариантах, на yii2 и чистом php, хотя бы на уровне алгоритма действий.
Спасибо.
Добрый день.
Есть ещё третий вариант - cron.
Настраиваете cron, например на раз в сутки.
Раз в сутки cron будет запускать скрипт, который будет чистить базу, сверяясь по столбцу, в котором записана дата удаления записи.
Максим Осадчий, ознакомьтесь с данной статьёй.
Другое дело, что запускать cron и дёргать базу это накладно.
Поэтому рассмотрите вариант о запуске раз в сутки.
а если дата удаления - через 2 минуты после создания?
Ничего страшного.
Просто в запросах, которые вы выполняете для того чтобы получить эти данные для ИСПОЛЬЗОВАНИЯ добавить проверку времени.
Чтобы УСТАРЕВШИЕ данные вам не возвращались.
То есть существовать в БД они будут, а видеть вы их как бы все равно не будете.
операция delete дорогая.
крон может не сработать.
не запускается чаше 1 раза в минуту.
проще иметь поле expired
select * from where id=? and expired меньше now()