Как правильно хранить таблицу с тарифами по часам?

Все привет.
Может кто-нибудь сталкивался или есть идеи.
Есть тарифы - час аренды судна, тарифы бьются на дни недели, часы и могут быть различные категории пассажиров.
Судно не одно их будет много и у каждого будет своя тарифная сетка.
Нужно делать поиск по кораблям и выводить стоимость аренды за выбранный период.
Как лучше хранить и работать с данным?
Есть мысль сделать отдельную таблицу в которой будет по часам расписано на год вперед, но объем ее получается довольно большой (примерно 8760 строк на одно судно). Может есть более оптимальный способ?
5ba780692f912012974240.jpeg
  • Вопрос задан
  • 562 просмотра
Пригласить эксперта
Ответы на вопрос 3
theemfs
@theemfs
Кратко о себе
Посмотрите как это делается в pms-системах (отели, да и вообще любое бронирование ресурсов). Это будет правильнее всего т.к. там учитываются практически все вариации ситуаций. Но там и сущностей будет больше. Тарифы, услуги, пакеты услуг, календари, приказы на изменение цен в тарифах, скидки, динамическое ценообразование, типы клиентов, сегментация и т.д. Это всё влияет на итоговую сумму в конечном счёте.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если запросов немного, то можно хранить интервалы (тариф, вид, дата_начала, дата_конца, set(дни_недели), время_начала, время_конца, цена_часа). Но запросы могут быть сложными и длительными.
Ответ написан
@rPman
Каждый час - свой атрибут в таблице (т.е. 24-атрибута, а их значения в таблице - цены), ведь в запросах эти данные будут подставляться конкретным значением, а значит это можно делать генерируя сам запрос (это не повлияет на скорость его исполнения), зато не будет перегруженной структуры, лишних индексов и оверхеда на работу с ними = плюс к скорости и простоте разработки.
Ответ написан
Ваш ответ на вопрос

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

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