2012-08-23 12 views
8

Chcę móc tworzyć harmonogramy, które mogą być wykonywane w oparciu o ustaloną datę, powtarzane codziennie, powtarzane w konkretny dzień tygodnia, powtarzane w określonym miesiącu roku, powtarzane w dniu konkretną datę każdego roku i powtarzaną o określonej porze dnia.Projekt tabeli bazy danych do zadań planowania

Jak mogę zbudować tabele bazy danych dla tego problemu?

Edit # 1

Zasadniczo Piszę aplikację, która pozwala użytkownikom zaplanować wstępnie skonfigurowane pozdrowienia być wysyłane w różnych wstępnie skonfigurowany czas. Wiem, że potrzebuję tabeli, która przechowuje informacje o harmonogramie (np. Boże Narodzenie, Marketing One, ... i kiedy harmonogram powinien być uruchamiany). Następnie inna tabela, aby zapisać, jaki harmonogram został uruchomiony, jakie powitanie wysłano, do kogo i jaki e-mail; w zasadzie tabela transakcji.

Mój problem polega na zaprojektowaniu tabeli Harmonogram, ponieważ chcę umożliwić użytkownikom uruchamianie harmonogramu w określonym dniu, w konkretnym dniu tygodnia (cyklicznie), w konkretnym dniu każdego miesiąca, w określonym czasie, codziennie oraz w danym dniu/miesiącu (np. 25/12) każdego roku.

Jak mogę utworzyć zestaw tabel dla harmonogramu, który zajmie się tymi danymi wejściowymi w elastyczny sposób?

+1

Nie można użyć wbudowany scheduler? Większość RDBMS je posiada i nie musisz wtedy wymyślać koła. – Ben

+0

Czy "wykonanie" powinno być również reprezentowane w bazie danych (i jak?) Lub tylko w harmonogramie? –

+0

@BrankoDimitrijevic Tak, powinno. – Tebo

Odpowiedz

6

To jest struktura tabeli, którą wymyśliłem;

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

Ponieważ mówisz o harmonogramach, zakładam, że chcesz zbudować aplikację wsadową do zarządzania i wykonywania zadań.

Możesz sprawdzić spring batch meta data design dla realizacji odniesienia. Dokładny projekt zależy jednak od Twoich wymagań. To tylko wskaźnik.

+0

Dzięki. Ale jest dość ogólny. Potrzebuję projektu, który reprezentuje różne okresy (Ustalona data, powtarzający się dzień miesiąca, powtarzający się dzień tygodnia, ...) dla harmonogramu. Które zostaną ostatecznie przetłumaczone na określoną datę. – Tebo