Hi Maverik
Zum jetzigen Ist-Zustand:
- Meine Anwendung baut auf einer MySQL-Bilderdatenbank auf. Die Bilder sollen/werden von Festplatte (Dateien, extern, Festplatten oder Sandisk-Karten) im Rohdatenformat (NEF) eingelesen. Davon gibt es
- Bitmaps mit den Pixelabmessngen des Roh-Bildes (Originale Datenmenge zur Bearbeitung)
- Jpegs, grösste Seitenlänge max.(?) 1200px, Webseitenverträglich
- Daneben gibt es noch Tabellen/Felder für HTML, CSS und Javascript
Ideen zur weiteren Entwicklung:
Aufgrund der zu erwartenden Datenmenge/Dateigrösse der Bilder denke ich, sollten die beiden Formate auf externen Festplatten (In je einer
DB? Je einer/mehreren Festplatten?) gespeichert werden, so dass die "Mutteranwendung" die Bilder zur Bearbeitung aus der NEF- bzw. Bitmapdatenbank lädt. Nef_Dateien werden dabei in Bitmaps konvertiert, so dass diese mit einem externen Programm zur Bearbeitung gestartet werden können.
Anschliessend wird die Bitmap in ein Jpeg konvertiert und in der
DB der Mutteranwendung gespeichert.
Die bearbeitete Bitmap wird der Bitmap-
DB übergeben und da gespeichert.
Die Mutteranwendung erstellt (bzw. der User) aus den in der
DB vorgehaltenen Daten Webseiten (In je einer Klasse), denen der User per drag and Drop Bilder und Kommentare zuweisen kann.
Diese Webseiten bleiben in der
DB gespeichert, entweder zur weiteren Bearbeitung oder um sie nach Fertigstellung an eine Webserveranwendung zu übermitteln.
Soweit mal ein kurzer Überblick, wobei der Listenabschnitt den Ist-Zustand wiedergibt. Der zweite Abschnitt enthält hingegen bereits einige Ideen zur Weiterentwicklung.
MySQL wird von meinem Hoster als Webseitendatenbank bereitgestellt, weshalb dies das
DBMS für meine Webserveranwendung ist.
Auf meinem Rechner würde ich allerdings gerne SQLite einsetzen, wobei ich an eine solche
DB für alle drei Anwendungen (Mutteranwendung, Nef-
DB und Bitmap-
DB) dachte. Mir ist bewusst, dass ich zum Datenaustausch eine
OOP-Lösung benötige.
Noch zuwenig angesehen habe ich mir die vorgeschlagene NoSQL-Datenbank. Wobei - wenn ich mir das überlege, wäre ja eine Client-Server-Lösung mit DataSnap/FireDac und allenfalls SQLite eben eine NoSQL-Datenbank - laut Wikkipedia ist eine NoSQL-
DB eben nicht unbedingt (oder gar nicht?) eine
DB ohne
SQL, sondern eine
DB, die nicht ausschliesslich auf
SQL aufbaut (zumindest, soweit ich das bisher verstanden habe).
Zitat:
Du willst eine externe Platte verwenden, weil Du nicht alle Daten gleichzeitig hast, richtig?
Nicht ganz. Die Gesamtheit der Bilddaten wird schnell mal zu gross. Diese füllen jetzt schon (zugegebenermassen etwas Chaotisch) eine Terrabyte-Platte. Dies zwar dank der Verarbeitung "von Hand". Trotzdem würden diese Bilder in einer
DB-Lösung nicht viel weniger Platz beanspruchen.
Zitat:
- Der Server hat wieder anderen Datenbanken /
- Felder... Willst Du die Datenbank direkt auf den Karten der Kamera speichern?
- Ja, die DB der Webserveranwendung wird ganz anders aufgebaut sein(User- und Sessionverwaltung etc)
- Nein, da hat sie definitiv keinen Platz. Hingegen kommen sie von da, entweder direkt oder mit Umweg über die Festplatte.
Zitat:
Also Bilder die lokal vorliegen als Kopie in einen Datenbank zu speichern, macht für mich keinen Sinn... Also nur einen Pfad in die Datenbank oder die RAW-Daten erstmal Packen und dann in die Datenbank...
Tatsächlich liegen die Bilder noch als Dateien auf der Festplatte - dies allerdings nur sollange, bis sie in der
DB sind und eine gute Backuplösung vorliegt. Was ist eine "gute" Backuplösung? Eine, die die vorhandenen Rohdaten speichert, oder eine, die dasselbe mit bearbeiteeten Bitmaps macht?
Zitat:
Die Übertragung zum Server würde ich - falls
FTP keine option ist - entweder per
SOAP (Einfacher in der Handhabung) oder per REST (weniger overhead) zum Server übertragen.
Danke für den Tip! Weniger overhead spricht doch schonmal für REST. Alenfalls müsste ich zusehen, wie gut ich das dann verstehe.
Gruss
Delbor