Задать вопрос
@andrew-kondaurov

Как изменить запись в бд при достижении определенной даты?

Я хочу сделать возможность ежемесячной подписки на сайте (laravel 8).
У меня в бд есть таблица, в которой определена дата окончания подписки и статус подписки (1 или 0).
По статусу подписки определяется доступ к контенту.


61ae1f213f62f220624243.png


Как мне написать функцию, и что использовать, чтобы по достижению определенной даты, статус подписки менялся в БД на 0?
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Базы данных работают не так.
В данном случае статус избыточен, и его можно убрать из БД
Таким образом ничего и менять не надо будет
Ответ написан
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Как написал FanatPHP , поле status излишне,
при необходимости иметь текущий статус подписки - можно создать представление:
create view subscriptions_status as select 
	id, user_id, created_at, end_at,
	case when end_at > now() then 1 else 0 end active
from subscriptions;

select * from subscriptions_status;


PostgreSQL view online
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы