Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankstruktur - wie speichern? (https://www.delphipraxis.net/202350-datenbankstruktur-wie-speichern.html)

scrat1979 28. Okt 2019 13:25

AW: Datenbankstruktur - wie speichern?
 
Zitat:

Zitat von jobo (Beitrag 1450371)
P.S./OT: Alternativ einfach Termine machen, nach den Abrechnungsvorgaben der Krankenkasse, das wäre bestimmt "lustig" ;-)

Die da wären? Also in meinen Abrechnungen hat die Frequenz oder Dauer eines Termines keinen Einfluss auf die eigentlich Abrechnung. Bei der Prüfung auf Plausibilität sieht das natürlich anders aus.

p80286 28. Okt 2019 21:03

AW: Datenbankstruktur - wie speichern?
 
Also die Taktung ist ein gern genutztes "Korsett", nach meinen Recherchen. Und wenn der Kunde das wünscht soll er es auch bekommen.
@Jobo
Wie willst Du das mit einem Timestamp realisieren? Nach meinem Verständnis wird das z.B. bei der Erfassung generiert und hat mit einem Termin recht wenig zu tun. Oder meinst Du damit den Feldtyp für den Termin?

Gruß
K-H

Moombas 29. Okt 2019 07:13

AW: Datenbankstruktur - wie speichern?
 
Im Ernst:

Ich glaube der TE hat (meiner Meinung nach) ein Logikproblem bei seinen Überlegungen, da er den Intervall = Anzeige setzt.
Ein eingestellter Intervall für (neue) Termine sollte keine Auswirkungen in der Ansicht der bestehenden Termine haben.

Es gilt zwischen Terminerstellung und Terminkalender (Ansicht) zu unterscheiden.
1. Beim generieren des Termins wird ein (voreingestellter, in den Programmeinstellungen vom Benutzer festgelegter) Wert für den Intervall angezeigt.
Beim erstellen des Termins wird dieser also berücksichtigt und entsprechend eingetragen, was nur in den Intervallen möglich ist.
Der Termin wird entsprechend in die Datenbank geschrieben.
2. Die Terminanzeige (Kalender) jedoch sollte UNI sein. Im Klartext so eingestellt sein, das sie vom (Grob-)Raster zwar den Intervall anzeigt, jedoch alle Termine anzeigt unabhängig vom Intervall.
Bedeutet: Ist der Intervall kleiner als die Terminlänge (weil vorher anderer Intervall eingestellt war), wird der Termin über mehrere Intervalle angezeigt. Ist der Termin kürzer als der Intervall (und ggf. mehrere Termine in einem Intervall), werden diese in einem Intervall angezeigt.

Tipp: Unterscheide zwischen Terminerstellungsintervall und Terminanzeigeintervall. Lasse beides als "default" vom Nutzer wählen, ihm aber die Freiheit zur Laufzeit das jederzeit zu ändern, ohne das sich der "default" ändert (sofern der Kunde das nicht blockieren will).

scrat1979 29. Okt 2019 08:49

AW: Datenbankstruktur - wie speichern?
 
@Moombas: Genau das meinte ich. Ein Termin hat eine Startzeit (mit Datum natürlich) sowie eine Endzeit (oder eine Dauer). Diese werden in der Datenbank gespeichert. Punkt.

Die Anzeige gehört davon komplett entkoppelt und lässt sich problemlos an neue Einstellungen anpassen. Ja nach Termindauer und Intervallgrössen erstreckt sich der Termin dann eben über mehr oder weniger Intervalle.

Ich verwende übrigens den TMS Planner, der kümmert sich komplett selbst um die Anzeige wenn Start- bzw. Endzeit bekannt sind. Das Intervall kann quasi auf Knopfdruck angepasst werden.

jobo 29. Okt 2019 08:51

AW: Datenbankstruktur - wie speichern?
 
@scrat
Nach meiner bescheidenen Kenntnis, sind die virtuellen Punkte, die für Termine beim Arzt von den gesetzlichen Kassen angerechnet werden, oft recht bescheiden im Vergleich zur reinen Dauer des Termins. (Mal abgesehen von der nicht direkt zu beziffernden monetären Höhe dieser Punkte)
Die Termine würden also daran gemessen u.U. recht kurz und natürlich nicht gerastert ausfallen.

@p80286
Ja, erst mal ist es ein Timestamp als Datentyp. Taktung ist meinetwegen ok, aber sie führt so wie sie praktiziert wird und durch Software unterstützt wird ja offensichtlich mit (nicht allein) dazu, dass Arzttermine oft ein Glücksspiel sind- was die Wartezeit angeht.

Gedanken:
Das Raster ist virtuell und findet ohne vergebene Termine keine Ausprägung
Ein gegebenes Raster definiert sich (hier) dann durch (Stunden) Anteile, z.B.: 1, 2, 3, 4, 5, 6
Also umgerechnet volle Stunde, halbe -, 20 Minuten, 15 -, 12-, 10, -
Vorgabe wäre meinetwegen 20 Minuten als Standardaufteilung.
aber eigentlich egal, denn:
auf Stundenebene gilt die dann festgelegte Uhrzeit primär als Reihenfolge oder als konkrete Angabe von (kleineren) Intervallblöcken, ein Termin = 1-n explizite, exakt angegebene Intervalle
Das Ändern eines Rasters (als Ausnahme oder dauerhaft) wirkt sich nur bedingt auf bestehende Termine aus. Im einfachen Fall „kleineres Intervall“ wird „irgendwo“* innerhalb der Stunde ein weiterer Termin erfasst, im schwierigeren Fall „größeres Intervall“ fliegt ein Termin aus der Stunde raus. Beides sind natürlich Verschiebungen und man muss definieren, wie damit umgegangen werden soll.
a) bestehende Termine behalten einfach das alte Raster, nur neue Termine werden nach neuen Vorgaben vergebenen
b) „Reinquetschen“: aus Terminen 10:00 Uhr und 10:30 Uhr wird 10:00, 10:20, 10:40
c) „Strecken“: aus 10:00, 10:20, 10:40 wird 10:00 und 10:30, ein Termin braucht einen neuen Platz (manueller Vorgang, Absprache)
..
Für diese Fälle muss man entsprechende Update Statements bauen.

*Wahrscheinlich wäre ein „loses“ Modell -ganz ohne Raster- mit einigen Problemchen in der technischen Handhabung verbunden, auch wenn es ein paar Updates spart. (nicht notwendig im Sinne der Last)
Fall b) würde mit einem Insert zwischen bestehenden Terminen auskommen, wobei hinreichend wäre, dass die neue Terminzeit „irgendwo“ zwischen 2 bestehenden Terminen liegt. Die Anwendung muss die Rasterung grafisch sowieso variabel beherrschen, nur eben nicht abhängig von einer Grundeinstellung, sondern abhängig von der tatsächlichen Datenlage in der jeweiligen Stunde.

Denkbar für eine Rasterumstellung wäre ggf. auch, dass man sie nicht akut durchführt, sondern in der Zukunft, also ab einem Zeitpunkt x in 4 Monaten. Liegt er weit genug in der Zukunft (keine Termine vergeben oder wenige die man manuell neu vergibt), kann man wahrscheinlich mit einfacheren Verfahren operieren. Ändert aber auch nichts an der Speicherung als Timestamp.

Das ist m.E. alles eine Frage davon, welchen Aufwand der TE in die Änderung stecken will.

Die Ausführungen von @Moombas bringen eigentlich recht deutlich raus, wie es normalerweise laufen sollte. Die Rasterung ist eine reine Darstellungssache.

p80286 29. Okt 2019 10:54

AW: Datenbankstruktur - wie speichern?
 
Zitat:

Zitat von jobo (Beitrag 1450405)
Die Ausführungen von @Moombas bringen eigentlich recht deutlich raus, wie es normalerweise laufen sollte. Die Rasterung ist eine reine Darstellungssache.

Das kann ich nur unterschreiben. Bleibt für mich die Frage wie man die Darstellung Kundengerecht hinbekommt, daran hab ich mir schon einmal die Zähne ausgebissen.

Gruß
K-H

jobo 29. Okt 2019 13:45

AW: Datenbankstruktur - wie speichern?
 
Liste der Anhänge anzeigen (Anzahl: 1)
so macht es z.B. Outlook:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.
Seite 4 von 4   « Erste     234   

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