dataarray
@dataarray

Как удалить запись в таблице через 7 дней?

В таблице Users есть записи.

Каждая запись может добавляться в разное время.
Каждая запись может храниться не больше 7 дней.

Можно ли сделать так, чтобы запись удалялась по истечению этого срока? (Грубо говоря, присвоить каждой записи поле с таймером). Читал, что нужно использовать moment, но понять как это сделать, не могу.

Еще небольшой вопрос. Если все-таки такое сделать возможно, то будет ли это сильно нагружать БД, скажем так, примерно, при 10'000 записях?

Использую Sequelize 6.6.2 / PostgreSQL 8.6.0
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
WinPooh32
@WinPooh32
Stack Overflow answer searching expert
Храните дату создания записи и просто при выборке исключайте строки, которые старее 7 дней относительно времени запроса.

Еще небольшой вопрос. Если все-таки такое сделать возможно, то будет ли это сильно нагружать БД, скажем так, примерно, при 10'000 записях?

10к это очень маленькое количество записей. На таком объеме не будет заметно.
А вот если у вас сотни тысяч вставок и удалений, то фризы гарантированны.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Grapeoff
@Grapeoff
В чём концепция...?
Я никогда не работал с SQL базами данных, только с MongoDB, и там есть такое понятие, как Time To Life index, то есть мы помечаем поле с датой создания (UTC формат) этой записи индексом TTL и задаём параметр ExpiresAfrerSeconds (в неделе 60 * 60 * 24 * 7 секунд) и по итогу, база данных удалит нам эту запись через неделю.

Не знаю, как в postgre, но возможно вам стоит почитать про TTL в вашей базе данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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