Möglichkeit, verschiedene Ladenöffnungszeiten in einer Datenbank zu speichern

Ich möchte Öffnungszeiten für verschiedene Geschäfte in einer Datenbank speichern. Im Moment arbeite ich mit der einfachsten Lösung:

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");

Meine nächste Idee für eine Verbesserung war;

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"
);

Dies führt jedoch immer noch zu einigen Problemen:

Mehrfachtage sind nicht möglich. (08:00 bis 11:00 und 13:00 bis 18:00 Uhr)Es gibt viele nicht verwendete / redundante Felder, da viele meiner Datensätze täglich feste Zeiten haben oder rund um die Uhr geöffnet sindSie sind nicht leicht zu durchsuchen.Feiertage können nicht dargestellt werden.

Jetzt frage ich mich also, ob es eine flexible Möglichkeit gibt, Öffnungszeiten zu speichern. Vielleicht in einer Syntax wieWD[1-5]{8-18},WD[6]{8-14},CD[12/25-12/26]{!0-24} woherWD bedeutet Wochentag undCD stellt einen Kalendertag oder einen Bereich für Ausnahmen dar und! meintgeschlossen.

Gibt es einen gemeinsamen Weg, um die Informationen so zu speichern?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage