sql >> Base de Datos >  >> RDS >> Mysql

¿La mejor manera de almacenar eventos semanales en MySQL?

Esta es una forma sencilla:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033

Cómo usar:

Simplemente establezca un 1 en los días que desea ejecutarlo. Dado que no es probable que el calendario de 7 días cambie pronto, esa estructura debería ser inmutable. Puede elegir cualquier combinación de días.

Para recapitular:

Corre todos los jueves:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033

Corre todos los jueves y lunes:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  1   0   0   1   0   0   0   14-01-2010    14-01-2033

Además, solo obtiene una fila por calendario de eventos, lo que es más fácil y limpio de manejar programáticamente.

Por ejemplo, para buscar todos los eventos que se ejecutarán el lunes, haga lo siguiente:

select * from Events where Mon = 1