У меня проблемы с приложением, над которым я работаю, и надеюсь получить некоторые рекомендации.
У меня есть простая система бронирования: каждый товар имеет стандартную цену, но есть некоторые периоды, когда цена может измениться.
Например:
Стандартная цена: 100 / день
С Oct. 1st
Feb. 1st
каждого года цена составляет 80 / день
С 1 Jun. 1st
по Aug. 31st
каждого года цена составляет 120 за день
[…] до 6 различных изменений цен (сезонов)
Поскольку это ежегодное событие, мне нужен только месяц и день, но я не знаю, как сохранить эти значения в базе данных. Я думал о том, что у меня два поля: один на месяц и один на день, которые содержат числовые значения ( 01-12
за месяц, 01-31
за день). Эти значения задаются самим пользователем, и они относятся к самому элементу, это не исправлено для всех.
Проблема в том, что когда кто-то делает бронирование, мне нужно проверить, нужно ли изменять цену, и я не понимаю, как построить запрос, чтобы проверить это. Чтобы сделать матчи наихудшими, цена может иметь несколько значений забронированный период.
Следуя приведенному выше примеру, если я должен был заказать товар с Sep. 1st (current year)
до 1 Jul. 1st (next year)
, цена будет следующей:
100 / день с Sep. 1st
Sep. 30th
80 / день с Oct. 1st
Feb. 1st
100 / день с Feb. 2nd
to May 31st
120 / день с 1 Jun. 1st
Jul. 1st
Есть ли способ проверить эти случаи без необходимости цитировать каждый день и проверять базу данных для соответствия?
спасибо