В данном случае, если не предполагается обширного списка исключений и особых случаев, не вижу ничего плохого в решении "в лоб". Просто и понятно. Зачем мудрить на пустом месте? Чтобы потом сочинять мега-запросы с несколькими джойнами?
Хуже, если нужно учитывать много особых случаев. Например, другой режим работы в предпраздничные дни или по вторым понедельникам каждого месяца. Тогда видимо, придется делать таблицу примерно такого вида: id магазина; id записи; несколько полей описывающих условия; время.