Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira de armazenar eventos semanais no MySQL?


Aqui está uma maneira direta:
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

Como usar:

Basta definir um 1 nos dias em que você deseja executá-lo. Como o calendário de 7 dias provavelmente não mudará tão cedo, essa estrutura deve ser imutável. Você pode escolher qualquer combinação de dias.

Para recapitular:

Executar todas as quintas-feiras:
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

Funciona todas as quintas e segundas-feiras:
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

Além disso, você obtém apenas uma linha por agendamento de evento, o que é mais fácil e limpo de manusear programaticamente.

Por exemplo, para encontrar todos os eventos a serem executados na segunda-feira, faça:
select * from Events where Mon = 1