Original von contact
Das mit der Datenbanklösung werde ich mal genauer unter die Lupe nehmen; möglicherweise bleibt alles überschaubar und man kann einem Kunden nach automatisch immer mal wieder anbieten, die Wiederholsachen zu "shiften", also aus der Vergangenheit nach vorn bringen; berechnet lägen die Termine ja in der DB. Die Zukünftigen Sachen müsste ich "heimlich nachrechnen" ... grübel grübel ...
Ich sehe die Erwähnung der 2 Jahre stiftet nur Verwirrung - vergiss das. So denke ich könnte das hinhauen:
In der Tabelle eine flag "is_repeating" und ein Timestamp "repeat_ends_stamp". Ein Event wird nur einmal reingeschrieben, wenn er wiederholend ist wird die flag gesetzt. Wenn das Enddatum berechnet werden kann, dann berechnen und reinschreiben, wenn nicht (Geburtstage, ...) bleibt es NULL.
Die Abfrage nach überschneidenden Events ist dann einfach (my_## bezeichnet Daten des zu prüfenden Events):
Du erhältst dann die sicher überschneidenden, nicht-wiederholenden Events, und möglicherweise überschneidende, wiederholende Events. Jene Events, welche das is_repeating flag gesetzt haben, muss du dann basierend auf dem Intervall noch separat berechnen. Aber ich schätze mal dass das nur wenige sein werden, vor allem wenn du die App nach 5 Jahren noch benutzen willst.
Widgetschmie.de • Life is too short for gadgets
