Если сделать режим работы в JSON (1-7 это дни недели ПН-ВС, первое значение время работы, второе, время обеда, далее особые настройки для определённых дней):
{
"1": "09:00-18:00",
"2": "09:00-18:00",
"3": "09:00-18:00",
"4": "09:00-18:00",
"5": "09:00-18:00",
"6": "09:00-18:00",
"7": "09:00-17:00",
"1": "13:00-14:00",
"2": "13:00-14:00",
"3": "13:00-14:00",
"4": "13:00-14:00",
"5": "13:00-14:00",
"6": 0,
"7": 0,
"2017-12-31": "09:00-16:00",
"2018-01-01": 0,
"2018-01-02": "10:00-16:00",
}
Плюс со временем появляется занятое время, 1 строчка 1 запись например:
id / date / start / finish
1 2017-07-31 09:00 10:00
Вопросы:
1. Как теперь быстро и эффективно наложить все записи, на время работы и отдать клиенту оставшиеся свободные промежутки времени?
2. Нужная ли в этом случае БД с поиском по JSON, т.е. одна их последних версий mysql или postgresql? Ведь тогда можно не разбирать весь JSON каждый раз а сразу извлечь нужные значения, например, посмотреть есть ли для этой даты уникальный режим работы.
3. Не стоит ли хранить не время обеда, а 2 рабочих промежутка 09:00-13:00 и 14:00-18:00 тогда время обеда и занятые промежутки будут приведены к одному формату
4. К какому виду лучше привести данные что бы для поиска интервалов задействовать одну из готовых функций php для повышения скорости работы?
Думал про key > value БД но не очень понимаю что в данном случае будет key а что value