Способ хранения различных времен открытия магазина в базе данных

Я хочу хранить часы работы разных магазинов в базе данных. На данный момент я работаю с самым простым решением:

CREATE TABLE opening_times(
 shop_id int(3) NOT NULL,
 times varchar(1000) NOT NULL
);

INSERT INTO opening_times VALUES(3,"Mon-Fri 8:30 to 18:00
Sat 9:00 to 12:00");

INSERT INTO opening_times VALUES(4,"24/7");

INSERT INTO opening_times VALUES(5,"Mon-Sun 8am-8pm");

Моя следующая идея для улучшения была;

CREATE TABLE opening_times(
 shop_id int(3) NOT NULL,
 monday varchar(11) NOT NULL, 
 tuesday varchar(11) NOT NULL, 
 wednesday varchar(11) NOT NULL, 
 thursday varchar(11) NOT NULL, 
 friday varchar(11) NOT NULL, 
 saturday varchar(11) NOT NULL, 
 sunday varchar(11) NOT NULL
);

INSERT INTO opening_times VALUES(
 3,
 "09:30-18:30",
 "09:30-18:30",
 "09:30-18:30",
 "09:30-18:30",
 "09:30-18:30",
 "09:30-12:30",
 "CLOSED"
);

Но это все еще приводит к некоторым проблемам:

Дни с многократным временем невозможны. (С 8:00 до 11:00 и с 13:00 до 18:00)Есть много неиспользуемых / избыточных полей, так как многие из моих наборов данных имеют фиксированное время каждый день или открыты 24/7Они не легко доступны для поиска.Праздники не могут быть представлены.

Так что теперь я задаюсь вопросом, существует ли гибкий способ хранения времени открытия магазина. Может быть, в синтаксисе, какWD[1-5]{8-18},WD[6]{8-14},CD[12/25-12/26]{!0-24} гдеWD означает рабочий день иCD представляет календарный день или диапазон исключений и! означаетзакрыто.

Есть ли распространенный способ хранения такой информации?

Ответы на вопрос(1)

Ваш ответ на вопрос