PHP & SQL - Kalender - Termin jeden ersten Montag im Monat

ZodiacXP

Erfahrenes Mitglied
Servus.

Habe gerade eine Blockade und Google hilft mir auch net viel.
Ich versuche einen Kalender zu modellieren, welcher periodische Termine beinhaltet wie zB "jeden ersten Montag im Monat" oder "jeden zweiten Montag im Monat".

Dies ist mein Ansatz für die Periode (SQL-Tabelle):
  • jahr_diff
  • monat_diff
  • woche_diff
  • tag_diff
  • tag_nummer (0 = Sonntag, 1=Montag, ...)
  • bis_zum
  • anzahl_wiederholungen

Für "jeden ersten Montag im Monat" könnte ich also diesen Eintrag haben: 0, 1, 0, 0, 8, 0, 20
also: monat_diff ist 1, tag_nummer sagt "den zweiten Montag" und dies für die nächsten 20 mal.

Ist das System so korrekt und vollständig oder macht man es ganz anders?
Vor allem: Wie wähle ich die kommenden Termine wenn ich x Tage vorher erinnert werden möchte? (Da tu ich mich schwer)
Freu mich über jede Hilfe.
 
Ich würde glaub den generischen Ansatz wählen.
Ich habe eine Tabelle wo ich diese Periode speichere.
In der zweiten Tabelle werden die Termine generiert und die ID der Periode mitgespeichert.

Wenn also jemand eine Periode erfasst, die nächsten 20 Montage, wird dies in die erste Taeblle gespeichert und gleichzeitig 20 Einträge in die Event-Tabelle erstellt. Wird später die Periode gelöscht/geändert, kann mn alle zukünftigen EInträge in der Eventtabellelöschen und neu generieren.

Für den Remember würd ich glaub eine eigene Tabelle erstellen. Auch diese mit den Änderungen der Periode-Tabelle Synchrom halten.

Wenn jemand in den Kalender geht, musst du nur die Remember prüfen und die Events auslesen. Die Tabelle Periode und das ganze generieren wird nur beim erstellen/änder/löschen von Perioden gebraucht.

In der Event-Tabelle sind auch alle Einzelevents drin. Diese haben dann einfach keine Zuordnungs-ID zur Periodentabelle.

Bei deinem Ansatz für die Periodentabelle fehlt das Startdatum. Also wo soll der erste Event sein.
 
Zurück