Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

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

Programm-Design, um DB-Abfragen zu minimieren

  Alt 18. Sep 2011, 12:27
Hallo zusammen,

ich habe keine passende Rubrik gefunden, daher poste ich es hier. Sollte das Thema nach Meinung der MODs besser wo anders passen, bitte verschieben

Folgendes Problem: Ich habe einen Dienstplaner für meine Abteilung geschrieben. Meine Kollegen sollen über ein (von mir geschriebenes) Programm die Möglichkeit haben, ihre Dienstplanwünsche selbt einzutragen. Zur Speicherung der Daten steht eine Firebird-Datenbank auf meinem Server zu Hause zur Verfügung. Das Programm arbeitet auch 1a, nur würde mich interessieren wie ihr in meinem Fall die Anzahl der Datenbankabfragen auf ein Minimum beschränken würdet.

An einem Tag stehen 3 verschiedene Dienste zu Auswahl. Ich habe es nun so gelöst, dass ich eine Klasse TTag erstellt habe, in welche beim Programmstart durch EINE Datenbankabfrage die bereits eingetragenen Dienste und Dienstplanwünsche aus der Datenbank eingelesen werden. Dann kann ich bequem "offline" testen, ob der ausgewählte Dienst bereits vergeben ist oder der Dienstplanwunsch schon existiert. Mit ist durchaus bewußt, dass es Probleme geben könnte, falls zwei Mitarbeiter gleichzeitig im Plan "herumhantieren", mir scheint es jedoch momentan die einzige praktikable Lösung zu sein - habe dies jedoch über den Primary-Key in der Datenbank gelöst, welcher eben Duplikate der Dienstwünsche vermeidet und einen Fehler ausgibt, welchen ich im Programm entsprechend interpretiere ("Dienst(wunsch) nicht möglich, bereits vergeben"). Würde ich jedesmal die Datenbank nach möglichen und vergebenen Diensten abfragen, nachdem der User den Tag/Dienst angeklickt hat, wäre die Geschwindigkeit über das Internet nicht mehr zumutbar (habe es selber getestet...).

Oder anders (allgemein) formuliert. Wie speichert ihr die Daten einer "fernen" Datenbank im Programm, um damit zu arbeiten OHNE die Datenbank durch zusätzliche Abfragen ansprechen zu müssen.

Hoffe auf einige Tipps,

Michael
Michael Kübler
  Mit Zitat antworten Zitat