Autor Beitrag
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: Mi 04.01.17 10:09 
Ein gesundes neues Jahr allerseits!

Momentan beschäftigt mich eine Frage, wie ich denn Daten, welche in eine Liste eingegeben werden, in einer Datenbank gespeichert werden können, um gegebenenfalls die Daten später auf neue Werte umzulegen.


Folgendes Szenario: Daten werden tageweise als Terminplaner in einem bestimmten Intervall erhoben. Der Intervall beträgt 10 Minuten, so dass z.B. 7:00 Uhr bis 7:20 Uhr 3 Einträge existieren.

Szenario 1: Nun stellt der Anwender irgendwann fest, dass er statt 10 Minuten einen 7-Minuten-Interval haben möchte. Wie werden die Daten denn nun zugeordnet, da ja nur noch ein Termin korrekt zugeordnet werden könnte (7:00 Uhr).

Szenario 2: Statt kleinerer Intervalle sollen neu 20-Minuten-Intervalle genutzt werden. Hier würde der 7:10 Uhr -Termin wegfallen.

Wie wird so etwas korrekt implementiert?

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 459
Erhaltene Danke: 90

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Mi 04.01.17 10:28 
So einfach, so klar: Frage mit ab, ab wann der neue Intervall gelten soll. Als Vorgabe kannst du ja den nächsten, noch nicht ereichten Termin nehmen. Ab diesem vom Benutzer nun angegebenen Zeitpunkt alle bestehenden Termine löschen und im neuen Intervall wieder anlegen.

Alles andere wird nicht zufriedenstellend funktionieren. Es ist egal, wie du es versuchst zu automatisieren: Es wird falsch sein.

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18733
Erhaltene Danke: 1631

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.01.17 13:57 
Ich habe das so gemacht, dass die weiteren Termine nur "Schattentermine" waren. Sprich keine unabhängigen Einträge, sondern zu dem ersten Eintrag gehörig.
Sobald man einen solchen Termin einzeln bearbeiten wollte, musste man auswählen was passieren soll:
Sequenz editieren, Eintrag aus Sequenz entfernen und separat bearbeiten (dann wird ein neuer Termin erstellt und der Schattentermin ungültig), Eintrag in Sequenz belassen und trotzdem editieren (dann würde er z.B. weiter gelöscht, wenn der erste gelöscht würde).

Diese Schattentermine müssen auch nicht als echte Einträge existieren, es reicht auch diese virtuell im Speicher zu generieren.
trm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: Mi 04.01.17 16:03 
Dankeschön für die Informationen.

Ich hatte das bisher anders gemacht, nämlich gänzlich unabhängig vom Zeitstempel. Somit waren die Termine pro Tag in loser Folge in der Datenbank zugehörig zu einem Datum. Das Datum war ein Fixpunkt, ebenso die Reihenfolge der Einträge. Daraus habe ich dann über die Zeitabstände die Termine anzeigen lassen und war eigentlich damit ganz zufrieden. Jedoch hatte ich die Hoffnung, dass jemand einen professionelleren Ansatz kennt, um das zu lösen. Denn einen Haken hat diese Handhabung immer noch: Wenn die Zeitabstände zwischen den Terminen größer werden, würden Termine hinten wegfallen. Diese könnte man dann wiederum als Schattentermine generieren.

Vielleicht kennt jemand noch eine andere Möglichkeit, die noch einfacher ist, als meine derzeitige :-)

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)