Hallo zusammen,
aktuell speichere ich Dateipfade zu meinen Sharedrive in meiner Datenbank.
Das funktioniert zwar auch, aber ich sehe hier mittlerweile zwei größere Risiken:
- Datenschutz
- Umzug der Datenbank / Backup Datenbank ist mit einem größeren Aufwand verbunden, da die ganzen Files (ShareDrive) ebenfalls umgezogen werden müssen.
Ich hatte vor einigen Jahren mal gelesen, dass es besser wäre die Pfade in der DB zu speichern.
Von anderen Entwicklern höre ich nun aber, dass diese seit Jahren als CLOB speichern.
Bilder in einem Chat bpsw. speichere ich bereits als Base64 Code und gebe in der GUI dann einfach diesen aus - funktioniert soweit auch ganz gut...
Ich würde ebenfalls das Speichern direkt in der DB bevorzugen.
Um was für Dateien geht es?
Ich speichere überwiegend Bilder (Profilbilder, Bild zu Artikel usw) ab. Aber auch PDF´s (bspw. Rechnungen).
Ich denke maximale Größe ist so 10 MB
Nun aber meine Fragen:
1) Was sollte ich als Datentyp nehmen? BLOB oder CLOB. BLOB speichert Binäre Daten, CLOB nur Text.
2) Wie würde das mittels JPA / Hibernate aussehen?
3) Wie sieht es bei Bildern aus? Aktuell speichere ich direkt 2 Bilder ab: a) Original b) Thumbnails... Um die Ladezeit zu verkürzen, lade ich oftmals nur das Thumbnail.
4) Dem User möchte ich eine Übersicht zurückgeben mit dem verbrauchen Speicher. Wie mache ich das mit BLOBs / CLOBs? Soll ich hier einfach die Filegröße speichern? Die Größe des Files lässt sich ja dann schlecht direkt aus der DB Tabelle/ Spalte errechnen
Vielen Dank
aktuell speichere ich Dateipfade zu meinen Sharedrive in meiner Datenbank.
Das funktioniert zwar auch, aber ich sehe hier mittlerweile zwei größere Risiken:
- Datenschutz
- Umzug der Datenbank / Backup Datenbank ist mit einem größeren Aufwand verbunden, da die ganzen Files (ShareDrive) ebenfalls umgezogen werden müssen.
Ich hatte vor einigen Jahren mal gelesen, dass es besser wäre die Pfade in der DB zu speichern.
Von anderen Entwicklern höre ich nun aber, dass diese seit Jahren als CLOB speichern.
Bilder in einem Chat bpsw. speichere ich bereits als Base64 Code und gebe in der GUI dann einfach diesen aus - funktioniert soweit auch ganz gut...
Ich würde ebenfalls das Speichern direkt in der DB bevorzugen.
Um was für Dateien geht es?
Ich speichere überwiegend Bilder (Profilbilder, Bild zu Artikel usw) ab. Aber auch PDF´s (bspw. Rechnungen).
Ich denke maximale Größe ist so 10 MB
Nun aber meine Fragen:
1) Was sollte ich als Datentyp nehmen? BLOB oder CLOB. BLOB speichert Binäre Daten, CLOB nur Text.
2) Wie würde das mittels JPA / Hibernate aussehen?
3) Wie sieht es bei Bildern aus? Aktuell speichere ich direkt 2 Bilder ab: a) Original b) Thumbnails... Um die Ladezeit zu verkürzen, lade ich oftmals nur das Thumbnail.
4) Dem User möchte ich eine Übersicht zurückgeben mit dem verbrauchen Speicher. Wie mache ich das mit BLOBs / CLOBs? Soll ich hier einfach die Filegröße speichern? Die Größe des Files lässt sich ja dann schlecht direkt aus der DB Tabelle/ Spalte errechnen
Vielen Dank