Bildverwaltung und Archivierung in Applikationen
-
Hallo!
Ich habe vor einiger Zeit für einen Arzt ein kleines Patientenverwaltungsprogramm geschrieben. Vor kurzem hat er mich gefragt, ob es möglich wäre, auch Bilder zu Patienten hinzuzufügen.
Das Problem hierbei ist, dass sehr viele Bilder zusammenkommen. Also z.B. 1000 Patienten mit jeweils 30 Bildern a' 1 MB. Das ganze kann natürlich auch mehr werden.Dazu jetzt ein paar Fragen:
- Wie würdet ihr die Bilder speichern? Einfach als Files verlinken, oder als binary-Data in einer Datenbank?
- Wie würdet ihr das Archivieren handeln (unter der Annahme, dass nicht alle Bilder auf einer Festplatte gespeichert werden können, sondern z.b. auf DVD's archiviert werden müssen)? Also z.b. auf ältere Bilder sollte ein Zugriff möglich sein, sie werden aber eher selten verwendet.Ich bin schon gespannt auf eure Ideen :).
-
Bilddateien würde ich heute ganz normal ins Dateisystem ablegen. Denn die heutigen Dateisysteme sind heute so modern, das sie DB-Systemen von der Persistierung her in nichts nachstehen. Gut, sie haben die Query-Features nicht.
Und deshalb würde ich den Dateipfad in einer Datenbanktabelle ablegen. Also du hast z.B. eine DB-Tab "Patient" und dann legst du eine DB-Tab "Dateien" an, also eine 1:n beziehung. Die Dateien-Tab könnte so aussehen:
id | pfad | typ | bemerkung
typ kann z.B. ein Kurzzeichen sein: p = photo, s = sonstiges
Wir benutzen dieses Konzept sehr oft, da unsere User viele PDFs, CAD-Zeichnungen usw. an bestimmte Aufgaben hängen. Die ganzen Dateien landen immer auf einem großen Dateiserver per FTP. Suchanfragen macht man dann in der DB-Tab, und wenn der User z.B. eine Datei sehen will, wird die einfach per FTP vom Server geholt, der Pfad ist ja bekannt. Zus. kann man noch die Dateien in eine für Menschen vernünftige Ordnerstruktur ablegen, so das man auch per PFT-Client lesend sich durch browsen kann. Soll heißen, alle Dateien nicht einfach in ein großes Verzeichnis speichern. Sondern sowas in der Art:
/patienten/<patienten-nr>/lingual.jpg
Naja, so in etwa.