AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Anwendungsdesign: WO Dateianhänge speichern?

Anwendungsdesign: WO Dateianhänge speichern?

Ein Thema von Codehunter · begonnen am 11. Aug 2017 · letzter Beitrag vom 15. Aug 2017
Antwort Antwort
Seite 2 von 2     12
Foren-Tage 2017
DIE Konferenz für Delphi-Entwickler mit vielen Vorträgen und ganztägigen Workshops, veranstaltet u.A. von der Delphi-PRAXiS und Embarcadero.
21.-23. September 2017 in Hamburg · Mehr Infos unter forentage.de.
Mikkey

Registriert seit: 5. Aug 2013
263 Beiträge
 
#11

AW: Anwendungsdesign: WO Dateianhänge speichern?

  Alt 13. Aug 2017, 13:02
Wenn mit einer großen Zahl von Anlagen unterschiedlicher Größe umgegangen werden soll und ein BLOB-Eintrag in der Datenbank selbst nicht infrage kommt, würde ich...
  • In einer Anlagen-Tabelle die Metadaten (und u.U ein Thumbnail) speichern, dazu eine Repository-Id und einen zum Repository relativen Pfad.
  • Eine Repository-Tabelle identifiziert die Speicherorte (die auf diese Weise einfach umziehen können).
  • Jedes Repository kann durch einen gesonderten Prozess verwaltet werden, so dass händische Eingriffe in die Repositorys unterbunden werden können. Die Datei erhält als Namen lediglich die ID des Anlagen-Eintrags.
Die Abfrage kann so auch passend darauf reagieren, wenn ein Repository gerade nicht zur Verfügung steht.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
669 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

AW: Anwendungsdesign: WO Dateianhänge speichern?

  Alt 14. Aug 2017, 11:13
Ich denke, dass es dabei keine allgemein gültige Lösung geben kann. Es kommt auf den Einsatzzweck an.

Wenn die Dateien nur zu Archivierungszwecken gespeichert werden, finde ich die BLOB-Lösung am schönsten. Setzt aber voraus, dass die Dateien möglichst nicht bearbeitet werden müssen.

Wenn man aber z.B. Textdokumente hat (Briefe, usw.), die von Zeit zu Zeit mit externen Programmen bearbeitet werden, müsstest Du sie aus dem Blob raus holen, bearbeiten in der Textverarbeitung wieder ins Blob einlesen. Ist fehleranfällig.

Anders herum, wenn Du z.B. bei irgendwelchen Buchungen zu Dokumentationszwecken vielleicht ein Bild einer Webcam speichern willst, würde ich das in der Datenbank speichern.
Die Größe der Datenbank dürfte bei heutigen Systemen nicht mehr der limitierende Faktor sein.
Jens
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
1.899 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: Anwendungsdesign: WO Dateianhänge speichern?

  Alt 14. Aug 2017, 13:02
Die Größe der Datenbank dürfte bei heutigen Systemen nicht mehr der limitierende Faktor sein.
so an sich nicht unbedingt, aber dann gibt es da hinten dran noch Backupsysteme und wenn es nicht filigran gemacht ist, bedeutet ein Änderung des Datensatz evtl erneutes Backup (Log).
Und je nach Eingang (freie Dokumente) kann das auch mal recht groß werden. (Der Versicherungsnehmer scannt eben ein paar Dokumente mit 1200 dpi und hängt noch ein paar Fotos vom Schaden an und dann hat man ein 100 MB Email)
Gruß, Jo
  Mit Zitat antworten Zitat
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.341 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: Anwendungsdesign: WO Dateianhänge speichern?

  Alt 15. Aug 2017, 06:58
Wenn man ein Datenbanksystem benutzt, oder auch das lokale unsichtbare Dateisystem zur Ablage der Dateien verwendet, könnten man gegen die Anwendung ein virtuelles Dateisystem integrieren, sodass sich für den Anwender alles "normal" anfühlt. Auf diese Weise können Dokumente ganz einfach bearbeitet werden. Man könnte automatisch eine Versionierung und auch ein Rechtesystem anbieten. Und die Dateien sind so auch gut gegen Verschlüsselungstrojaner geschützt. Auch ein wichtiger Punkt.

Die Firma Eldos bietet ein solches Produkt.

Ansonsten Dokany, da hab ich den Wrapper mal eine Weile aktuell gehalten. Müsste mal wieder einer ran https://github.com/dokan-dev/dokan-delphi
Oder https://github.com/billziss-gh/winfsp - eine Abspaltung/Neuentwicklung von Dokany, weil er mit der Architektur von Dokany nicht zufrieden war.

Aus Datensicherungsgründen packen wir im Moment alle Dokumente zu einem Vorgang (Das Anwendungsdesign macht es möglich) mit Versionierung in eine SQLite-DB. So sind bei einem Ausfall nicht alle Daten betroffen. Abgerufen werden die Dateien über ein REST-API
Sven
--

Geändert von sh17 (15. Aug 2017 um 07:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
943 Beiträge
 
Delphi XE4 Professional
 
#15

AW: Anwendungsdesign: WO Dateianhänge speichern?

  Alt 15. Aug 2017, 08:36
Danke euch schon mal für die vielen Meinungen!

Wenn die Dateien nur zu Archivierungszwecken gespeichert werden, finde ich die BLOB-Lösung am schönsten. Setzt aber voraus, dass die Dateien möglichst nicht bearbeitet werden müssen.
Hier kommt noch ein Faktor hinzu, den ich im Eingangspost noch nicht erwähnt hatte, nämlich dieses wunderbar Produktivzeit vernichtende GoBD. Damit habe ich mich aber auch erst NACHDEM ich das Erstpost geschrieben hatte befasst. Insofern dürfen in manchen Fällen angehängte Dateien gar nicht mehr verändert werden können. Zumindest nicht ohne dass es dem System auffällt. GoBD schreibt außerdem ausdrücklich vor, dass simple Netshares nicht ausreichend wären. Hieße für mich, wenn man schon mit Netshare arbeitet, in welcher Form auch immer, dann müsste man mindestens noch einen Hashwert der Datei speichern. Aber da ahne ich schon dass das supportlastig wird...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf