Lançamento com repetição em períodos futuros

2 respostas
claudsan

Galera,

To com um desafio aqui, pensando e pensando não consegui achar uma solução viável ou elegante.

Como exemplo o Google Calendar tem uma opção de repetição (sempre) como fazer um evento que seja frequente toda segunda feira,
ou seja em qualquer segunda-feira for vai ter o evento cadastrado. Se der uma olhada no ano 2548 em todas segundas terão o lançamento.

Como faria isto no banco de dados, ou em relatórios futuros que precisem listar este lançamento, qual a mágica?

Quem tiver passado por isto ou tiver alguma dica, ficarei agradecido.

2 Respostas

E

Pense ao contrário.

Você imagina que, para cada data, você tem uma lista de eventos, certo? Isso é perfeito para um evento que ocorre uma única vez.

Só que para eventos repetitivos, você tem de pensar ao contrário: você tem uma lista de eventos repetitivos, e você precisa ver se algum dele (ou alguns deles) ocorre(m) nessa data.

Como há poucos eventos repetitivos, dada uma data qualquer, você pode examinar cada um dos eventos, e ver se o evento cai nessa data.

Por exemplo, digamos que você tenha criado um evento que ocorre “todas as terceiras segundas-feiras de cada mês, entre 2012 e 2017”. Dada uma determinada data (20/04/2013), você pode checar se esse evento se aplica . Nesse caso: 20/04/2013 é um sábado, então o evento não se aplica.

claudsan

Me passaram essa dica aqui: http://dev.mysql.com/doc/refman/5.1/en/events-overview.html, Event Scheduler ainda não testei se resolve esse problema mas acho que é o que chega mais perto.

Se alguém tiver mais dicas, mas de qualquer forma agradeço!

att

@claudsan

Criado 26 de abril de 2013
Ultima resposta 29 de abr. de 2013
Respostas 2
Participantes 2