Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo migliore per archiviare eventi settimanali in MySQL?

Ecco un modo semplice:

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

Come usare:

Basta impostare un 1 nei giorni in cui si desidera eseguirlo. Poiché è improbabile che il calendario di 7 giorni cambi a breve, tale struttura dovrebbe essere immutabile. Puoi scegliere qualsiasi combinazione di giorni.

Per ricapitolare:

Corri ogni giovedì:

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

Corri ogni giovedì e lunedì:

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

Inoltre, ottieni solo una riga per pianificazione evento, che è più facile e pulita da gestire a livello di codice.

Ad esempio, per trovare tutti gli eventi da eseguire il lunedì, eseguire:

select * from Events where Mon = 1