Die Anforderungen für meine Dokumente-Management-System waren:Dokumente als Blobs in einer Datenbank speichern - Irgendwelche Nachteile?
- muss vor Diebstahl durch einfaches Kopieren von Verzeichnissen sicher sein, Dateien usw.
- muss gegen traditionelle Virusinfektion (Infektion der physischen Datei) sicher
- muss schnell sein muss abrufen
- Das Repository nicht zu lässig (Verzeichnis) Surfen Benutzer sichtbar sein usw.
ich beschlossen haben, stor Alle Dokumente (und eingescannte Bilder) als Blobs in der Datenbank und bisher ist meine Erfahrung wunderbar und die Dokumentensuche ist blendend schnell - es erfüllt alle oben genannten Kriterien und es gibt sogar noch ein paar zusätzliche Vorteile, wie zum Beispiel Dokumente automatisch zu speichern zusammen mit der Entität, auf die es sich bezieht, leichtes und schnelles Suchen von Inhalten, Entfernen aller Arten von Benutzeraktivitäten rund um das Öffnen und Nennen von Dokumenten etc. etc.
Meine Frage ist - gibt es irgendwelche ernsten Risiken oder Dinge, die ich übersehen habe mit diesem Design und Implementierung?
EDIT Hinweis: DB ist PostgreSQL, behandelt BLOBS sehr gut und skaliert außergewöhnlich gut. Die Umgebung ist Multi-User.
Wie bei jedem großen Dataset haben Sie einen Server, den Sie in die Replikation ein- und auslagern, um Snapshots der Datenbank zu erstellen für die Sicherung. Wie wäre das bei BLOBs anders? – Brad
Es besteht kein Unterschied zwischen Bildern und anderen BLOB-Daten. Das Verschieben der BLOB-Daten in eine eigene Tabelle beschleunigt jedoch das Lesen der anderen Spalten, da die BLOB-Daten nicht in den Speicher referenziert/geladen werden müssen. Außerdem haben die meisten Web-Entwicklungen keine großen BLOB-Daten außer Bildern. – Jacco
@Jacco Jede Unicode-Zeichenfolge, die länger als 1000 Zeichen ist, erfordert einen CLOB für Oracle, da Oracle Unicode mit 4 Byte speichert und jeder Wert kleiner als 4k sein muss. Es ist sehr einfach, diese Beschränkung zu überschreiten. Wir benötigen CLOBs für nicht geparste XML-Daten und BLOBs für Zertifikate. – ceving