2012-08-23 16 views
8

Desidero essere in grado di creare pianificazioni che possono essere eseguite in base a una data fissa, ripetuta ogni giorno, ripetuta in un particolare giorno della settimana, ripetuta in un particolare mese dell'anno, ripetuta su una data particolare ogni anno, e ripetuta in un particolare momento della giornata.Progettazione tabella database per attività di pianificazione

Per favore, come faccio a costruire le tabelle del database per questo problema?

Modifica # 1

In sostanza, sto scrivendo un programma che permette agli utenti di pianificare i saluti pre-configurato per essere inviati in diversi momenti pre-configurati. So che ho bisogno di una tabella che memorizzi informazioni su un programma (ad esempio Natale, Marketing One, ... | e quando il programma dovrebbe essere eseguito). Poi un'altra tabella per registrare quale programma è stato eseguito, quale saluto è stato inviato, a chi e quale email; fondamentalmente una tabella delle transazioni.

Il mio problema è la progettazione della tabella di pianificazione perché, voglio consentire agli utenti di eseguire la pianificazione in una data specifica, in un particolare giorno della settimana (ricorrente), in un particolare giorno di ogni mese, in un momento particolare ogni giorno e in un particolare giorno/mese (ex 25/12) ogni anno.

Come posso creare un set di tabelle per la pianificazione che si prenderà cura di questi input in modo flessibile?

+1

non è possibile utilizzare un programmatore in-built? La maggior parte degli RDBMS ha questi e non è necessario reinventare la ruota. – Ben

+0

La "esecuzione" dovrebbe anche essere rappresentata nel database (e come?) O semplicemente la programmazione? –

+0

@BrankoDimitrijevic Sì, dovrebbe. – Tebo

risposta

6

Questa è la struttura del tavolo che mi è venuta in mente;

Schedule 
- ScheduleName 
- ScheduleTypeId (Daily, Weekly, Monthly, Yearly, Specific) 
- StartDate 
- IntervalInDays 
- Frequency 
- FrequencyCounter 

ScheduleDaily 
- ScheduleDailyId 
- ScheduleId 
- TimeOfDay 
- StartDate 
- EndDate 

ScheduleMonthly 
- ScheduleMonthlyId 
- ScheduleId 
- DayOfMonth 
- StartDate 
- EndDate 

ScheduleSpecific 
- ScheduleSpecificId 
- ScheduleId 
- SpecificDate 
- StartDate 

... 

ScheduleJob 
- ScheduleJobId 
- ScheduleId 
- ScheduleTypeId 
- RunDate 
- ScheduleStatusId 
1

Dato che si tratta di orari, presumo che si desideri creare un'applicazione batch per la gestione e l'esecuzione di lavori.

È possibile controllare spring batch meta data design per un'implementazione di riferimento. Tuttavia, il design esatto dipenderà dal tuo requisito. Questo è solo un puntatore.

+0

Grazie. Ma è abbastanza generico. Ho bisogno di un design che rappresenti periodi diversi (data fissa, giorno del mese ricorrente, giorno della settimana ricorrente, ...) per il programma. Che alla fine verrà tradotto in una data specifica. – Tebo

Problemi correlati