AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankstruktur - wie speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankstruktur - wie speichern?

Offene Frage von "jobo"
Ein Thema von NoGAD · begonnen am 24. Okt 2019 · letzter Beitrag vom 29. Okt 2019
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Datenbankstruktur - wie speichern?

  Alt 26. Okt 2019, 18:24
Wenn die Termine nun also in der Datenbank liegen, der Intervall geändert werden muss, sollten diese Termine im Prinzip chronologisch wieder eingebunden werden.

12:00 T1 / 12:15 T2 / 12:30 T3 = 15 Minutentakt

Nun wie oben schon erwähnt, wird der Intervall (z.B. nach 1 Jahr) umgestellt, die Termine sollten aber wieder in die neue Struktur geladen werden.

12:00 T1 / 12:20 T2 / 12:40 T3 = 20 Minutentakt

Wird jetzt der Intervall nach einem weiteren Jahr wieder umgestellt, weil es doch praktischer gewesen ist,..

12:00 T1 / 12:15 T2 (war vorher 12:20) / 12:30 T3 (war vorher 12:40) = 15 Minutentakt


Und hier nun meine Eingangsfrage:

Wie sollte das Modell der Datenspeicherung aussehen, damit auch (z.B.) solche Fälle abgedeckt werden können. (Dass die Bestellten über eine Terminänderung informiert werden müssen ist mir in diesem Fall egal.)


LG und danke für eure Ausdauer

Mathias
Mathias
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#22

AW: Datenbankstruktur - wie speichern?

  Alt 26. Okt 2019, 20:02
Dieses Intervall ist mir weiterhin unverständlich!
Angenommen ich wollte etwas bestellen, dann tue ich das jetzt (19.44Uuhr).
Wenn Dein Intervall zur Verfügung stellst, nehmen wir an 5Minuten, dann trage ich meine Bestellung in der Zeile
19.40Uhr oder 19.45Uhr ein? Da ich sehr langsam an der Tastatur bin kommt die nächste Bestellung um 19.47Uhr. Die trage ich dann in 19.50Uhr ein, weil ja 19.45Uhr schon belegt ist? Wenn ich ein 15Minuten Intervall wähle, dann steht mir 19.30Uhr, 19.45Uhr und 20.00Uhr zur Verfügung, was dann mit den realen Bestellzeiten so gut wie nichts mehr zu tun hat!?
Können den zwei oder drei Bestellungen zur gleichen Zeit aufgegeben werden? also
19.45Uhr Bestellung1
19.45Uhr Bestellung2
19.45Uhr Bestellung3

bzw. ist eszulässig, daß die Anzeige mir vorgaukelt alle drei Bestellungen wären zur gleichen Zeit erfolgt?

Und ansonsten verweise ich auf die ersten Beiträge "was in der DB steht und was angezeigt wird, sind zwei unterschiedliche Schuhe".

Und nochmals die Frage "wofür ist das gut", denn eine Bestelldokumentation im 15Minutentakt erlaubt gerade einmal 4 Bestellungen pro Stunde, das wäre dan nicht so sportlich.

Gruß
K-H

Oh gerade nochmal durchgelesen. Geht es darum eine "Lieferzeit" zu definieren?
also um 12.15 soll eine Raumpflegerin in Abteilung A zur Verfügung stehen?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (26. Okt 2019 um 20:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Datenbankstruktur - wie speichern?

  Alt 26. Okt 2019, 22:07
Dieses Intervall ist mir weiterhin unverständlich!

Du hast noch nie einen Arzttermin in einer Praxis bekommen, nehme ich an.

Das Bestellbuch, welches per Stift und Hand benutzt wird, ist ähnlich einem Notizbuch. Ein Eintrag wird gemacht, wenn man das Datum kennt, an welchem der Termin stattfinden soll. Das ganze hat nichts mit Versandbestellungen zu tun.

LG Mathias
Mathias
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#24

AW: Datenbankstruktur - wie speichern?

  Alt 26. Okt 2019, 23:18
Also handelt es sich um einen Terminplaner, und Dein Problem sind Termine, die in der Vergangenheit vergeben wurden, die nicht mehr in das aktuelle Raster passen. Ist das soweit richtig?

Wenn ja, wo ist das Problem? Liegt der Termin in der Vergangenheit sollte er nicht mehr soo interessant sein.
Liegt er in der Zukunft, hat man ein Problem da die vereinbarten Einbestellungen nicht mehr in das aktuelle Raster passen, insbesonders wenn das Raster vergrößert wurde. In diesem Falle wurden mehr Termine vergeben als in das akuelle Raster passen. Wenn diese Abweichungen korrigiert wurden, interessiert es dann noch welcher Termin ursprünglich vergeben wurde?
Wenn ja, wie oft kann eine solche Korrektur durchgeführt werden?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#25

AW: Datenbankstruktur - wie speichern?

  Alt 26. Okt 2019, 23:28
Du hast noch nie einen Arzttermin in einer Praxis bekommen, nehme ich an.
Schau an, ich nenne sowas Terminkalender.
Sorry aber wenn man Dir mehrfach sagt, dass man mit Deinen Beschreibungen nicht klar kommt, machts ein Augenrollen nicht besser.

Zum Problem

Warum muss rückwirkend alles angepasst werden, wenn das Intervall verändert wird? Wenn die Termine so lagen, wie eingetragen, dann ist es halt so. Hat ja mit neuen Terminen nichts zu tun.

Wenn ein Intervall scheinbar ungünstig ist und ein anderes scheinbar besser, und dann doch wieder nicht, wieso benutzt man dann überhaupt Intervalle?

Ein Computer braucht die Intervalle nicht, eine Software braucht sie auch nicht.

Mir wurde neulich noch von einer Ärztin das Phänomen "Wartezeiten" "erklärt". Eigentlich gibt es eine Taktung von 30 Minuten, aber dann kommen Notfälle und Mitleidsfälle und was weiß ich und dann ist alles im Eimer, und die Leute mit "Termin" warten 3h, dass sie dran kommen.
Ja und ich hör schon die Arzthelferin "man kann es ja auch gar nicht anders eintragen"
Reden wir davon?


Also nehmen wir mal an, jemand hat entschieden, Intervalle zur Termingestaltung zu nehmen, aber Abweichugnen zu gestatten, nach Bedarf, wäre das denkbar?

Wäre es außerdem denkbar, meinetwegen jeden Tag andere Intervalle zu nehmen und die vergangenen einfach wie eingetragen zu belassen?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Datenbankstruktur - wie speichern?

  Alt 27. Okt 2019, 00:12
Ich habe mir selber für exakt diesen Zweck einen Terminplaner für die Sprechstunde geschrieben. Das Problem mit der Taktung habe ich mir auch überlegt. Für mich spielt das keine so große Rolle, da der Planer ja nur für mich verwendet wird. Aber ich werde mir dafür auch eine Lösung einbauen.

Möglichkeit 1:
Wenn die Taktung geändert wird werden einfach alle Termine, welche in dem Intervall liegen eingetragen. Dabei ändert sich eben die Anzahl der Termine pro Zeiteinheit.

Möglichkeit 2 (das werde ich machen):
In der Datenbank eine extra Tabelle für Taktungen einschließlich der Gültigkeit (Datum) anlegen.
Z.B. Taktung|DatumVon|DatumBis

Wenn jetzt ein Datum zur Termineintragung ausgewählt wird, dann wird die entsprechende Taktung aus der Datenbank (respektive ObjectList, die Objekte werden vom Server an die Clients beim Login übertragen) ausgelesen und die Anzeige des Planers entsprechend angepasst.
Vergangene Termine spielen ja keine Rolle, aber auch hier könnte man die Taktung „schönheitshalber“ angleichen.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#27

AW: Datenbankstruktur - wie speichern?

  Alt 27. Okt 2019, 18:41
Die Möglichkeit 2 und einen neuen Datensatz für die neue Taktung.
Und den Datensatz mit einem Verweis auf den Vorgängerdatesatz versehen. Das sollte eine grobe Struktur sein.

Interessant ist die Frage, wie man den Bestand vernünftig anpasst. Denn wenn statt 5 Terminen in einer Stunde nur noch 4 (oder 3) abgearbeitet werden sollen, hat man schon eine Aufgabe. Ganz besonders wenn der Terminplaner verbindlich ist und nicht wie bei Dir (und einigen anderen) eher Empfehlungscharakter hat.
Davon hängt auch ab ob Doppeltermine zulässig sind oder ob für einen Zeitraum die Vergabe von Neuterminen nicht möglich ist. Hier sollten beide Möglichkeiten oder eine sowohl als auch Lösung ins Auge gefasst werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Datenbankstruktur - wie speichern?

  Alt 27. Okt 2019, 19:03
Die Möglichkeit 2 und einen neuen Datensatz für die neue Taktung.
Und den Datensatz mit einem Verweis auf den Vorgängerdatesatz versehen. Das sollte eine grobe Struktur sein.

Interessant ist die Frage, wie man den Bestand vernünftig anpasst. Denn wenn statt 5 Terminen in einer Stunde nur noch 4 (oder 3) abgearbeitet werden sollen, hat man schon eine Aufgabe. Ganz besonders wenn der Terminplaner verbindlich ist und nicht wie bei Dir (und einigen anderen) eher Empfehlungscharakter hat.
Davon hängt auch ab ob Doppeltermine zulässig sind oder ob für einen Zeitraum die Vergabe von Neuterminen nicht möglich ist. Hier sollten beide Möglichkeiten oder eine sowohl als auch Lösung ins Auge gefasst werden.

Gruß
K-H
Die eigentliche Berechung ob noch ein Termin verfügbar ist, ist - zumindest bei mir - noch von sehr sehr vielen anderen Faktoren abhängig (u.a. angrenzender Urlaub?, Termin-Kategorie, Anzahl der anwesenden Ärzte, Facharztvertrag?, Dringlichkeit? Offene Sprechstunde im ausgwählten Intervall? Montag (mehr Unfälle über das Wochenende zu erwarten)? etc.) um nur wenige zu nennen und ist maßgeblich von den Anforderungen der Praxis abhängig. Dem TE geht es - so habe ich es verstanden - lediglich um die Anzeige im Kalender nachdem sich die Taktung ändert. Und dies sollte doch gar kein Problem sein. Jeder Termin hat ja einen Beginn (Datum + Uhrzeit), welcher eindeutig einem Interval zugeordnet werden kann (egal wie groß oder klein es auch ist). Dementsprechend sind im Interval - ja nach Skalierung - halt mehr oder weniger Termine eingetragen. Wie gesagt, die Berechnung, ob noch ein Termin verfügbar ist, sollte bzw. darf nicht von der Darstellung abhängig sein. Diese Berechung liegt bei mir in einer eigenen Klasse völlig unabhängig von der GUI und ist teilweise sehr komplex.

@p80286: Warum einen Verweis auf den Vorgänger-Datensatz?
Michael Kübler

Geändert von scrat1979 (27. Okt 2019 um 19:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Datenbankstruktur - wie speichern?

  Alt 27. Okt 2019, 23:28
@p80286: Warum einen Verweis auf den Vorgänger-Datensatz?
Ja ist unausgegoren. Mit dem Verweis auf den Vorgänger, hast Du die Ursprungsdaten und den Hinweis "der aktuelle Datensatz ist eine Modifikation". Wenn Du einen Hinweis auf den Nachfolger einbaust sind alle Datensätze ohne diesen Hinweis aktuelle, aber Dir fehlt der direkte Weg zum Vorgänger um die Vorgängerdaten zu erreichen. Darum sollte je ein Feld für Vorgänger und Nachfolger enthalten sein.

Was die Korrektur bei einem Intervallwechsel angeht, sollte so viel wie möglich automatisiert erfolgen. Im ungüstigsten Falle eine Einzelkorrektur jedes relevanten Eintrags. Und wenn möglich wenigstens hier eine TeiAutomatisierung durch Vorschläge. Einfach weil die rein manuelle Bearbeitung zu fehleranfällig ist.
Gut die Erfassung ist auch rein manuell (sieht man von dem vorgegebenen Intervall ab) aber man sollte jede Möglichkeit der (Teil-)Automatisierung ergreifen um Fehler zu vermeiden.

Und vielen Dank für den Hinweis, dß die Taktung in die Daten gehört und natürlich mit der Oberfläche nur mittelbar zu tun hat. Das ist für mich so selbsverständlich, daß ich nicht immer darauf hinweise.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#30

AW: Datenbankstruktur - wie speichern?

  Alt 28. Okt 2019, 12:34
Wie gesagt, man speichert einen ganz normalen Timestamp.
Da (mir) nun klar ist, wie das eingesetzt wird, sehe ich keine Probleme bei neuer Taktung. Es wird einfach gemäß aktueller Vorgabe angezeigt bzw. neu eingetragen.

Ich finde es allerdings sehr unmodern (vorsichtig ausgedrückt), eine starre Taktung zu haben. Ich kann in meinem Spreadsheetprogramm seit Jahrzehnten "Zellteilung" machen wie ich will (oder Zusammenfassung).
Aus fachlicher Sicht:
Wenn ich weiß, dass die eingeplanten Fälle schnell abzuarbeiten sind, dann kann ich doch einen weiteren dazunehmen oder umgekehrt, bei komplexen Fällen weniger Taktung vorsehen. EDV soll eine Hilfe sein.

P.S./OT: Wem ist noch bewusst, dass das Zwölfer System die besten Teilungsmöglichkeiten bietet? Das gilt natürlich auch für ein Vielfaches von 12, 60 Minuten z.B.. Könnte man ja munter nutzen diese Möglichkeit.
Alternativ einfach Termine machen, nach den Abrechnungsvorgaben der Krankenkasse, das wäre bestimmt "lustig"
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz