Как хранить расписание в Postgresql?

В базе есть записи, они должны быть доступны по критериям даты - либо в определенный промежуток времени, к примеру - с 18:00 До 19:00, или только по понедельникам и вторникам, или в определенный промежуток дат - к примеру на новогодние праздники.

Никак не могу придумать, как их хранить.
  • Вопрос задан
  • 3472 просмотра
Решения вопроса 1
mpaytishev
@mpaytishev
Я для решения подобной задачи взял py-dateutil, он умеет разворавичать запись набора дат (повторяющихся событий) из формата iCalendar (RFC2445), например:

DTSTART:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5


В базе у меня в отдельной таблице Событие хранится эта исходная строка и в отдельный таблице развернутый список дат. Можно, конечно, каждый раз разворачивать строку и не хранить даты в базе, но боюсь, что такой вариант будет медленней.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tgz
Так и храните как timestamp. А в запросах уже
... WHERE extract(hour from ts) BETWEEN 18 AND 19 ...;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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