![]() |
Wiederholungsaufgabe wie speichern ?
Hallo zusammen,
folgende Situation. Ich kann im Programm eine Aufgabe definieren, die sich über einen bestimmten Zeitraum immer zu einem bestimmten Zeitpunkt wiederholen soll. Welche Daten würdet Ihr in einer Datenbank speichern ? Ich kann mich zwischen diesen beiden Antworten nicht entscheiden :
Was haltet Ihr für sinnvoller ? Es geht hier nur um die Daten, nicht darum wie ich die Daten in eine Datenbanktabelle bringe. |
AW: Wiederholungsaufgabe wie speichern ?
Eigentlich brauchst du doch beide Varianten also sowohl Einzeltermine als auch Serientermine.
Ich würde beide Varianten in der gleichen Tabelle speichern und damit die Daten leicht denormalisiert abspeichern.
LastAction ist ein kleiner Bonus damit man sieht wann die Aktion zum letzten Mal ausgeführt wurde. |
AW: Wiederholungsaufgabe wie speichern ?
Hallo,
ist eine interessante Frage, die so einfach wohl nicht zu beantworten ist - zumindest mit den knappen Angaben. Beide Varianten haben in einem bestimmten Kontext ihren eigenen Charme. Wenn einen Aufgabe (mit Wiederholungen) definiert und gespeichert wird, im Anschluss aber nicht mehr geändert werden kann - oder darf -, dann ist die Variante 2 sicherlich die einfachere Lösung. Sollen jedoch nachträgliche Änderungen am Wiederholungsintervall, das Löschen einer oder einzelner (wiederholten) Aufgaben(intervallen) möglich sein, o. ä., dann wird es vermutlich schwierig werden das in Variante 2 einfach abzubilden. Daher würde ich eher zu Variante 1 tendieren, (nur) die wesemtlichen Attribute der Aufgabe in einer Tabelle halten (eine Aufgabe ist eine Aufgabe, egal wie oft wiederholt) und eventuelle Wiederholungen in einer zweiten Tabelle halten. Gruß |
AW: Wiederholungsaufgabe wie speichern ?
@sx2008: Anstatt 'RepeatMode' vielleicht 'NumberOfRepetitions'. Dort stellt man ein, wie oft der Termin wiederholt werden soll.
Bei jeder Wiederholung wird 1 abgezogen, bis 0 rauskommt (oder -1, wie man will). Es reicht ja, bei beliebig oft zu wiederholenden Terminen ("Schahatz, bringst Du den Müll runter?") maxint einzutragen. Das wird -selbst bei glücklichen Ehen- ausreichen. Weiterhin als Idee: Der geplante nächste Termin 'NextPlannedAction' vormerken. Dieser kann vom Benutzer angepasst werden. Der Scheduler prüft dann nur, welche nächste geplante Aktionen durchgeführt werden. Das kann man natürlich auch ausrechnen, aber dann gibt es diese Flexibilität nicht. Beim Intervall würde ich noch Dinge einbauen, wie "Am 1. des Monats", "Jeden 2.Dienstag" usw. Das wird in der Codierung eub wenig umständlich und in der Berechnung des nächsten Termins kniffelig, aber da wir die 'NextPlannedAction' in der Tabelle halten, ist das wurscht. Der Scheduler jedenfalls (oder der Kalender) glotzt ja eh nur auf 'NextPlannedAction'. |
AW: Wiederholungsaufgabe wie speichern ?
Ich würde das Prinzip beim Wecker von Android abschauen:
Startdatum, Enddatum, Uhrzeit Typ (einmalig, wiederholt), Wochentage Nach einem aufgetretenen Ereignis das nächste Ereignis ermitteln, dann muss laufend(!?) nur jeweils mit einem Termin verglichen werden. |
AW: Wiederholungsaufgabe wie speichern ?
Ich würde mir mal "Geplante Tasks" bei Windows anschauen, dort finden sich bestimmt jede Menge Anregungen ;)
|
AW: Wiederholungsaufgabe wie speichern ?
Hallo zusammen,
danke erstmal für die vielen Antworten. Ich habe mir anhand den Antworten mal grob die folgenden Punkte zusammengestellt für das Speichern :
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz