Ако сте готови да гледате само една седмица наведнъж, можете да канонизирате всички часове на отваряне/затваряне, за да зададете минути от началото на седмицата, да речем неделя 0 часа. За всеки магазин създавате определен брой кортежи от формата [startTime, endTime, storeId]. (За часове, които се простират в полунощ в неделя, ще трябва да създадете две кортежи, едната отиваща до края на седмицата, едната започваща в началото на седмицата). Този набор от кортежи ще бъде индексиран (да речем, с дърво, което бихте обработили предварително) както в startTime, така и в endTime. Кортежите не трябва да са толкова големи:има само ~10k минути на седмица, които могат да се поберат в 2 байта. Тази структура би била изящна в MySQL таблица с подходящи индекси и би била много устойчива на постоянно вмъкване и изтриване на записи при промяна на информацията. Вашата заявка ще бъде просто „изберете storeId, където startTime <=time and endtime>=time“, където времето е канонизираните минути от полунощ в неделя.
Ако информацията не се променя много често и искате търсенето да е много бързо, можете да разрешите всяка възможна заявка предварително и да кеширате резултатите. Например, има само 672 четвъртчасови периода на седмица. Със списък с фирми, всеки от които имаше списък с часове на отваряне и затваряне като решението на Брандън Роудс, можете просто да преглеждате всеки 15-минутен период в рамките на една седмица, да разберете кой е отворен, след което да съхраните отговора в таблица за търсене или списък в паметта.