Sposób przechowywania różnych godzin otwarcia sklepu w bazie danych
Chcę przechowywać godziny otwarcia różnych sklepów w bazie danych. W tej chwili pracuję z najprostszym rozwiązaniem:
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");
Mój następny pomysł na ulepszenie był;
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"
);
Ale to nadal prowadzi do pewnych problemów:
Dni z wieloma czasami nie są możliwe. (Od 8:00 do 11:00 i od 13:00 do 18:00)Istnieje wiele nieużywanych / zbędnych pól, ponieważ wiele moich zestawów danych ma stałe czasy każdego dnia lub są otwarte 24 godziny na dobę, 7 dni w tygodniuNie są łatwe do przeszukiwania.Wakacje nie mogą być reprezentowane.Teraz zastanawiam się, czy istnieje elastyczny sposób przechowywania godzin otwarcia. Może w takiej składniWD[1-5]{8-18},WD[6]{8-14},CD[12/25-12/26]{!0-24}
gdzieWD
oznacza dzień tygodnia iCD
oznacza dzień kalendarzowy lub zakres wyjątków i!
znaczyZamknięte.
Czy istnieje wspólny sposób przechowywania takich informacji?