2012-08-23 16 views
8

Sabit bir tarihe dayanarak, günlük olarak tekrarlanan, haftanın belirli bir gününde tekrarlanan, yılın belirli bir ayında tekrarlanan, tekrarlanan zaman çizelgeleri oluşturmak istiyorum. Her yıl belirli bir tarih ve günün belirli bir saatinde tekrarlanır.Görevler için veritabanı tablosu tasarımı

Lütfen bu sorun için veritabanı tabloları oluşturma hakkında nasıl giderim?

Düzenleme 1.

Temel olarak, ben kullanıcılar önceden yapılandırılmış selam çeşitli önceden yapılandırılmış zamanlarda gönderilmek üzere planlamak için izin veren bir uygulama yazıyorum. Programla ilgili bilgileri saklayan bir tabloya ihtiyacım var (örneğin Noel, Pazarlama Bir, ... | ve programın çalışması gerektiğinde). Daha sonra hangi programın kaçtığını, hangi selamı gönderdiğini, kime ve hangi e-postayı kaydettiğini kaydetmek için başka bir tablo; temelde bir işlem tablosu.

Sorunum, Zamanlama tablosunu tasarlamaktır çünkü kullanıcıların belirli bir tarihte, belirli bir tarihte, haftada belirli bir günde (yinelenen), her ayın belirli bir gününde, her gün belirli bir saatte çalıştırılmasına izin vermek istiyorum ve her yıl belirli bir günde/ayda (örneğin 25/12).

Bu girdilere esnek bir şekilde dikkat edecek bir zaman çizelgesi tablosu tablosu nasıl oluşturabilirim?

+1

bir dahili zamanlayıcı kullanamaz mıyız? Çoğu RDBMS bunlara sahiptir ve tekerleği yeniden icat etmek zorunda değilsiniz. – Ben

+0

"Yürütme" de veritabanında (ve nasıl?) Veya sadece zamanlamada mı gösterilmelidir? –

+0

@BrankoDimitrijevic Evet, gerekir. – Tebo

cevap

6

Buraya geldiğim tablo yapısı;

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

Programlardan bahsedeceğiniz için, işlerin yönetimi ve yürütülmesi için bir toplu iş uygulaması oluşturmak istediğinizi varsayarım.

Referans uygulaması için spring batch meta data design numaralı telefonu kontrol edebilirsiniz. Ancak, kesin tasarım gereksiniminize bağlı olacaktır. Bu sadece bir işaretçidir.

+0

Teşekkürler. Ama oldukça genel. Program için farklı dönemleri (Sabit tarih, ayın yinelenen günü, haftanın yinelenen günü, ...) temsil eden bir tasarıma ihtiyacım var. Sonunda belirli bir tarihe tercüme edilecektir. – Tebo