OlegSo
@OlegSo
me

Бронирование Отелей PHP SQL?

Добрый День, не могу разобраться с алгоритмом для бронирование номеров :
CMS - на модели MVC рукописная.

А загвоздка в просчете дней на период бронирования + подсчет суммы на эти дни.

есть 10 номерных фондов у каждого цена разная зависит от человек от 1 до 4,
+ доп места для людей
+ разные категории цен на детей.

+ у каждого номерного фонда есть 10 категорий цен на период у которых цена иная и допы иные,

(как я это вижу просчет периода пользователя с указными датами)
01.07.2017 по 10.07.2017 итого =10дней
через многомерный массив проверяю есть ли там даты из 10 категорий, если есть то подсчитать сколько.)

Проще говоря --- Помогите ))) кто сталкивался с подобной задачей. может есть путь проще.
  • Вопрос задан
  • 1499 просмотров
Решения вопроса 1
OlegSo
@OlegSo Автор вопроса
me
Спасибо за подсказку. я так и храню в БД:

А в данном случае Дата действует по умолчанию. на все время кроме
(price_1_one_start/price_1_one_end, price_1_two_start/price_1_two_end, price_1_three_start/price_1_three_end, );

По данному виду как можно написать алгоритм работы ( еще не очень силен в PHP JAVA SQL);

- часть структура базы:
$options['price_1_ID'] - название Номерного Фонда
$options['price_1_1'] - цена за 1 гостя
$options['price_1_2'] - цена за 2 гостя
$options['price_1_3'] - цена за 3 гостя
$options['price_1_4'] - цена за 4 гостя
$options['price_1_food'] - название еды

$options['price_1_dop_1_ID'] - доп место название 1
$options['price_1_dop_1'] цена доп 1 место
$options['price_1_dop_2_ID']- доп место название 2
$options['price_1_dop_2'] - цена доп 2 место
$options['price_1_dop_3_ID']- доп место название 3
$options['price_1_dop_3'] - цена доп 3 место

$options['price_1_one_start'] - начало 1 даты акции (начало диапазона)
$options['price_1_one_end'] - конец 1 даты акции (конец диапазона)
$options['price_1_one_1'] - цена за 1 гостя
$options['price_1_one_2'] - цена за 2 гостя
$options['price_1_one_3'] - цена за 3 гостя
$options['price_1_one_4'] - цена за 4 гостя
$options['price_1_one_dop_1_ID'] доп место название 1 для 1 диапазона
$options['price_1_one_dop_1'] - доп место цена 1 для 1 диапазона
$options['price_1_one_dop_2_ID'] - доп место название 2 для 1 диапазона
$options['price_1_one_dop_2'] - доп место цена 2 для 1 диапазона
$options['price_1_one_dop_3_ID'] - доп место название 3 для 1 диапазона
$options['price_1_one_dop_3'] - доп место цена 3 для 1 диапазона

$options['price_1_two_start'] - начало 2 даты акции (начало диапазона)
$options['price_1_two_end'] - конец 2 даты акции (конец диапазона)
$options['price_1_two_1']
$options['price_1_two_2']
$options['price_1_two_3']
$options['price_1_two_4']
$options['price_1_two_dop_1_ID']
$options['price_1_two_dop_1']
$options['price_1_two_dop_2_ID']
$options['price_1_two_dop_2']
$options['price_1_two_dop_3_ID']
$options['price_1_two_dop_3']
$options['price_1_three_start']
$options['price_1_three_end']
$options['price_1_three_1']
$options['price_1_three_2']
$options['price_1_three_3']
$options['price_1_three_4']
$options['price_1_three_dop_1_ID']
$options['price_1_three_dop_1']
$options['price_1_three_dop_2_ID']
$options['price_1_three_dop_2']
$options['price_1_three_dop_3_ID']
$options['price_1_three_dop_3']

$options['price_2_ID'] - название Номерного Фонда 2
...
$options['price_3_ID'] - название Номерного Фонда 3
...... --//--
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maximw
@maximw
Храните массив цен по каждому дню отдельно. В интерфейсе редактирования цен менеджер может задать диапазон дат и цены, но при записи надо отдельно перезаписывать каждый день в БД. Тогда при подсчете общей стоимости бронирования это будет простой проход в цикле по всем дням периода бронирования с простым суммированием соотв. цен.
Возрастает объем хранимых данных, но это очень немного. Возрастает сложность при обновлении цен, хотя возможно наоборот падает в том плане что не надо пересчитывать как вновь заданный диапазон дат ложится на имеющиеся уже записи. И самое главное вы вообще убираете мороку с высчитыванием диапазона дат при вычислении стоимости бронирования.
Ответ написан
Ваш ответ на вопрос

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

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