verwendetes Datenbanksystem: SQL2012 Express (noch)
Hallo zusammen,
ich benötige mal eure Hilfe. Und zwar haben wir bei uns in der Firma Geräte die einmal im Jahr zur Kalibrierung verschickt werden müssen.
Zur Zeit wir das alles in einer Excel Tabelle verwaltet und es passiert regelmäßig das die Termine für die nächste Kal. vergessen werden. 8o
Da das natürlich mist ist, gibts da bald ne DB-Anwendung. Eigentlich ganz einfache Sache. Ich hab die Oberfläche fast fertig und der SQL Server verschickt auch schon Mails 30 Tage vor dem Ablaufdatum. Soweit so gut.
Nun aber zum Problem/Frage:
Es sollen auch Zertifikate (in der DB) abgelegt werden. Ich danchte da an eine Filetable. Ich hatte mir das so vorgestellt, dass man im DataGrid per rechtsklick das Dokument einem Datensatz zuordnet.
Wenn ich das richtig verstanden habe muss die Datei dann in den entsprechenden Ordner verschoben werden. (System.IO.File.Move) Kann ich der Filetabel dann die GUID des Datensatzes mitteilen oder lege ich da eine extra Tabelle an mit zwei ID Spalten (DatenTabelle/Filetable). Oder ist die Filetable dafür das falsche Mittel.
Danke schonmal.
Grüße
Steven
Warum speichert ihr nicht einfach die Zertifikate als Blob / Byte-Array?
FileTables lohnen sich erst bei groesseren Dateien.
Zertifikate sind ja wirklich Mini.
PS: ich hab den Titel so angepasst, dass man wenigstens weiss, worum es in dem Thread geht.
Ein Titel mit "Frage zu XY" erfuellt ja nicht ganz den Sinn.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo steven,
Es sollen auch Zertifikate (in der DB) abgelegt werden
Nur damit es kein Missverständnis gibt: mit Zertifikaten meinst du hier jene von der Kalibrierung*?
Diese liegen dann als PDF (Scan) vor?
Da diese Dateien i.d.R. nicht recht groß sind, würde ich auch wie von Abt vorgeschlagen, das einfach als byte[] speichern. Ist einfach und direkt umsetzbar, alles direkt in der DB (ist für Backups praktischer), usw.
*
die einmal im Jahr zur Kalibrierung verschickt werden müssen
Kommt drauf an wo die hingeschickt werden -- vllt. ist Eichung gemeint.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Erstmal danke fürs umbenennen.
Die Zertifikate sind meistens mehrseitige PDFs aber die Anzahl der Datensätze bleibt sehr überschaubar.
Die Zertifikate als Byte Blob speichern. Weiß nich ob das geht, wegen Dokumentationspflicht etc. Die Orginaldateien müssen/solten irgendwie gespeichert werden. Und dann gibts auch backups der dateien.
Die Aufbewahrungspflicht regelt auch die Aufbewahrungsformen.
Dort ist zwar aufgefuehrt, dass es eine Elektronische Archivierung sein kann; mir waere aber neu, dass dort aufgefuehrt ist, ob es nun Datenbanken oder Ordner sind.
Ich habe aber die Archivierung als Zertifikat anders verstanden.
Du sprichst eigentlich von einer stink normalen PDF Datei. Ob das nun nen Zertifikat ist oder nicht ist fuer die Technik voellig bums.
Alles unter 1 MB kann man locker direkt in die Datenbank als Blob setzen.
Ansonsten ja, File Table und FileStream.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo steven,
Die Orginaldateien müssen/solten irgendwie gespeichert werden
Ob die als Bytestrom (nichts anderes ist eine Datei) im Dateisystem, Netzlaufwerk, etc. liegen od. als Bytestrom in einer Datenbankzeile sollte in Bezug auf Dokumentationspflicht keinen Unterschied machen. Son sind sie auch sicher und können via DB-Backups (mit-) gesichert werden.
Falls sie jedoch irgendwo auf einem Netzlaufwerk liegen müssen, so kannst du den UNC-Pfad in der DB speichern.
Aber d.h. dann dass sich das Schema von der Netzlaufwerkspeicherung nicht ändern darf -- und das wird sich früher od. später sicher ändern und dann ist die Frage ob diese Änderung auch in der DB nachgepflegt wird.
Daher würde ich das gleich in der DB speichern und auf Nummer sicher gehen.
Wobei ich die Schwelle über 1 MB setzten würde, eher bei 5 MB -- lt. meiner Erfahrung gibt es da keine Probleme wenn diese direkt in der DB sind.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"