@but1head

Как в postgresql хранить рабочие часы организации?

Есть таблица организаций, у каждой организации есть рабочие часы:
понедельник: 24 часа
вторник: с 10:00 до 22:00
среда с 15:00 до 01:00
четверг выходной

Как все это хранить в jsonb и фильтровать по: открыто сейчас, открыто до 23:00, круглосуточно?
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ответы на вопрос 1
copist
@copist
Empower people to give
Хранение выбирается исходя из целей: расписание нужно только лишь показывать или по нему нужно искать.

Если только показывать - то можно для любого расписания придумать замысловатую конструкцию в формате JSON, а можно текстом хранить, а можно и HTML.
Если требуется искать, то нужно понимать - можно ли по этой структуре написать алгоритм поиска. Возможно будет эффективнее представить расписание как записи: в такой-то день недели с такого-то времени по такое-то время РАБОТАЕТ или наоборот НЕ РАБОТАЕТ

CREATE table `workinghours` (
  `timefrom` unsigner integer COMMENT "Время начала", /*0 ... 2359 - перевод часов минут в целочисленный формат*/
  `timeto ` unsigner integer COMMENT "Время окончания", /* 0 ... 2359 */
  `weekday` unsigner integer COMMENT "День недели" /* { 1, 2, 3, 4, 5, 6, 7 } */
);


на случай, если расписание действует какой-то календарный период времени, необходимо ещё добавить пару свойств
`datefrom` date COMMENT "Начало календарного периода",
`dateto` date COMMENT "Окончание календарного периода",
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы