Mislim da bi najjednostavnije bilo da, ako neko traži da vidi događaje za recimo 11. nedelju ove godine, da kreiraš privremenu tabelu koja predstavlja tu nedelju i da onda protrčiš kroz sve one zapisane događaje --- i ako kriterijum za neki događaj odgovara, ubaciš zapis u tu privremenu tabelu.
Npr. imaš događaje:
1. svaki utorak u 10:00 am, uradi A
2. svaki 11. u mesecu, uradi B
Neko hoće da vidi događaje ze evo ovu nedelju (ne mora da bude "nedelja", možeš da "gađaš" bilo šta: dan, nedelju, mesec..). Napraviš privremenu tabelu otprilike sa ovim kolonama:
Kôd:
Dan D M Y Događaj
po 4 6 07
ut 5 6 07
sr 6 6 07
ce 7 6 07
pe 8 6 07
su 9 6 07
ne 10 6 07
Lepo sad prođeš kroz događaje i vidiš da li neki od njih može da se ubaci negde u ovu tabelu.. Prvi događaj bi mogao, drugi ne. Prvi događaj, pošto se izvršava "svaki utorak", samo upariš sa kolonom "dan" (tražiš WHERE ="ut"), a drugi, pošto je jednom mesečno prema datumu ("svaki 11. u mesecu.."), sa kolonom "D", itd. Morao bi negde za razne tipove događaja samo da odrediš sa kojom kolonom/kolonama se "uparuju"..
E sad.. ne znam da li se isplati stalno generisati privremenu tabelu na svaki zahtev ponovo ili je unapred generisati za npr. čitavu godinu, pa samo dopunjavati kad neko doda/izmeni/obriše događaj. To već treba malo testirati.