Actualmente estoy tratando de encontrar la mejor manera de almacenar las horas de operación de una empresa en una base de datos.
Por ejemplo:
La empresa A tiene las siguientes horas de funcionamiento
- Lunes: 9h - 17h
- Martes: 9 a.m. - 5 p.m.
- Miércoles: 9 a. M. - 5 p. M.
- Jueves: 9am - 5pm
- Viernes: 9h - 17h
- Sábado: 9 a.m. - 12 del mediodía
- Domingo: cerrado
Actualmente tengo un modelo de datos similar al siguiente
CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"day" varchar(16) NOT NULL,
"open_time" time,
"close_time" time
)
donde el "día" está restringido a una selección de los 7 días de la semana en código (a través del ORM). Para probar si una empresa está cerrada en un día determinado, verifica si open_time y close_time son NULL. Se relaciona con el negocio a través de una tabla intermedia (Relación Many To Many).
¿Alguien tiene alguna sugerencia para este esquema de base de datos? Hay algo en eso que no me parece correcto.