Gå til innhold

Tabeller/struktur for en fleksibel kalender


Anbefalte innlegg

Hei

 

Holder på å lage et større internt system for en del ting, og deriblandt ønsker eg å lage en kalender for personlige hendelser/aktiviteter(jobb, barnehage, trening, bursdager osv).

 

Men eg føler eg har kommet i en sirkel hva tenking angår. Problemet kommer når eg skal ha en databasestruktur for hendelser som repeteres. For eks trening på mandag, onsdag og fredag annenhver uke, mandag og onsdag de andre ukene. Eksempel 2 blir første mandagen i hver måned. Et annet eksempel er fredag til torsdag annenhver uke.

 

Hvordan skal eg klare å få dette til på en effektiv og skikkelig måte?

 

Så langt har eg laget det slik at når eg registrerer en hendelse så velger eg hvordan den skal repeteres, ikke, hver dag, annenhver uke osv, og deretter kalkulerer funksjonen seg 5 år frem i tid og registrerer ei rad for hver gang. Men dette er tungvindt og begrenser seg til 5 år.

 

Andre tips? :)

 

Databasen er MySQL, mens interfacet for øyeblikket er i php på web, perl på serveren som skal sette i gang varsling, samt jobber eg med perl/c på en liten crontab-jobb som også skal jobbe mot databasen.

Lenke til kommentar
Videoannonse
Annonse

Du vil _ikke_ legge inn gjentagende hendelser mer enn en gang.

 

Det du vil gjøre er å lagre regler for gjentakelse og første gang hendelsen skal forekomme og så behandle disse reglene i programmet som viser kalenderen.

 

I PHP så har du strtotime som er veldig fleksibel når det kommer til å tolke regler som +2uker og så videre.

 

 

Håper det hjelper.

Lenke til kommentar

Eg vet at eg ikke _må_ lage en rad for hver gjentagelse av hendelsen, men så langt har det vært det enkleste. Men eg ønsker å ikke gjøre det, derfor er eg på jakt etter innspill :)

 

Litt av problemet er at eg ønsker å lage en enkel MySQL spørring som takler å hente frem gjentagende hendelser like godt som engangshendelser for den dagen. Poenget med det er at eg ønsker å gjøre spørringen så flerspråklig som mulig.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...