Hallo, ich habe folgende Idee/Anforderungen, die ich am Beispiel von Bilddatei beschreibe. Ich habe viele Dateien, die im Dateisystem echt(keine links) mehrfach unter verschiedenen Ordnern liegen. Die Ordnerbezeichnungen spiegeln im Grunde genommen eine Sortierungsansicht, wie "schöne Blumen". Dasselbe File liegt aber zB im Ordner, der chronologisch "Oct.2008" benannt ist. Durch gewachsene Unordnung kann man nicht davon ausgehen, dass chronologische Ordner alle Datei beinhalten. Darum würde ich gerne (jetzt kommt mein unfachlicher Unsinn) alle diese Dateien in eine Datenbank reinlegen, die aber durch eine Art Filter von jeder Datei Hash Wert mitspeichert, sodass Mehrfacheincheckungen erkannt werden. Danach würde ich gerne verschiedne "Views/Sichtweisen" deklarieren wollen und nach und nach die Dateien einsortieren. Welche Datenbank bietet sich hierfür an? Ich könnte selber Skripts schreiben (Python || Ruby), die obengennanten Filter implementiert. Wie verheirate ich dann mein Skript mit der Datenbank? Gibt es eine Art "callback" von DB zu externen Skripts zur Vorverarbeitung etc? Ich suche keine fertige "nur Musik||Bilder||etc Verwaltungssoftware". Ich bin den schönen GUIs nicht abgeneigt, wenn ich die Abläufe auch intern skriptmässig (mysql?) kontrollieren kann. Grüsse, Daniel
Auch wenn du kein fertiges Tool willst... Picasa bietet eine Funktion zum Suchen doppelter Bilder, Dateinamen sind dabei egal Unter Tools->Sonstiges->Doppelte Bilder finden
das einfachste könnte sein, das man zu jedem Bild eine Stichwort datei anlegt und dort in jede Zeile ein Stichwort reinschreibt. Wenn man jetzt etwas sucht kann man einfach die Textdatein parsen und rausfinden wo das gesuchte Stichwort drin steht. Klar eine Datenbank ist bei sehr vielen Bilder schneller. Dafür muss sie aber extra verwaltet werden.
Hallo! Daniel schrieb: > Welche Datenbank bietet sich hierfür an? Ich könnte > selber Skripts schreiben (Python || Ruby), die obengennanten Filter > implementiert. Wie verheirate ich dann mein Skript mit der Datenbank? Für solche Zwecke bietet sich z.B. MySQL an, weil es ein Datenbanksystem ist, für das umfangreiche und ausgereifte(?) Integrationen in die gebräuchlichen Skriptsprachen wie Python oder Ruby existieren. Gerade bei Webanwendungen verwendet man ja gerne MySQL o.ä.. Da es sich bei der Anwendung ja auch nicht um eine Eintagsfliege handelt, ist es auch nicht unwichtig, darauf zu achten, dass die Skriptsprache und Datenbank mit hoher Wahrschein- lichkeit auch noch von den in fünf oder zehn Jahren aktuellen Betriebssystemen unterstützt werden. Und davon kann man bei MySQL ganz sicher ausgehen. Bei der Erstellung des Datenbankschemas sollte man sich überlegen, ob man die Fotos als sog. BLOBs (binary large objects) in der Datenbank speichert oder außerhalb als Dateien. Für die erste Variante würde natürlich sprechen, dass man alles auf einem Haufen hätte, für die zweite, dass man die Datenbank selbst nicht mit großen Binärdateien überfrachtet. Es bietet sich dabei auch an, die Dateien nicht unter ihren Original- namen zu speichern, sondern z.B. unter ihren SHA1/SHA256 als Dateinamen. Falls man Bildbearbeitungen zulässt, muss man natürlich darauf achten, dass das veränderte Bild einen neuen Dateinamen bekommt, da der alte ja nicht mehr zum Hashwert passt. Das verteilte Versionskontrollsystem Git, wie es für die Linux-Kernel- entwicklung verwendet wird, referenziert seine eigenen Objtekt übrigens auch ausschließlich über deren Hashwerte. Dadurch ist es sehr einfach, eine Konsistenzprüfung durchzuführen, sowohl in Hinblick auf versehentliche Änderungen als auch "böswillige" Manipulationen. Ich gehe davon aus, dass man im Netz auch schon etliche Pakete oder Bibliotheken finden, mit deren Hilfe man die ggf. in den Bildern enthaltenen EXIF-Informationen extrahieren kann, um sie direkt in der Datenbank zu speichern. Damit ermöglicht man dann ja auch eine Sor- tierung, z.B. nach Aufnahmezeit (sofern die Kamerauhr korrekt eingestellt ist). Gruß Andreas Schweigstill
>Picasa bietet eine Funktion zum Suchen doppelter Bilder, Dateinamen sind >dabei egal >Unter Tools->Sonstiges->Doppelte Bilder finden Ich habe Bilder als ein Beispiel genannt. Ein Anderes wäre zB die Verwaltung von Datenblättern und Application Notes. Einmal nach Hersteller, einmal nach Bauteilgruppe und einmal nach Projekten wo die schon verbaut sind. Diese Sichten sind doch beliebig erweiterbar. Apropos Picasa, ich hätte es nicht gerne, wenn google sich meine Familienbilder ansieht. Für Doppeldateien finden könnte ich selbst ein Skript schreiben, das ist eine Sache von höchstens einer Stunde. >Klar eine Datenbank ist bei sehr vielen Bilder schneller. Dafür muss sie >aber extra verwaltet werden. Ich könnte auch ohne DB auskommen, sowie ich mich bis jetzt davor gedrückt habe. Aber ich bin so aufgelegt etwas Neues zu probieren :)
@Andreas ist auch folgendes in MySQL machbar: Datenbank läuft, wahrscheinlich als Server. A,B Clients laufen auch. A modifiziert ein Datenbankeintrag => Event/Interrupt/Callback, wie man es nennt, wird im Client B ausgelöst?
MySQL kennt Trigger und Funktionen welche bei bestimmten Aktionen (Insert/Update) Ausgeführt werden können. Den Client über Änderungen zu benachrichtigen geht aber nicht. Wie soll das auch aussehen? Ansonsten ist deine Beschreibung auch recht nebulös. Wo ist den jetzt das Problem? Was soll z.B. mit "doppelten" Dateien geschehen? Willst du später die Dateistruktur ggf. anpassen? Oder einfach nur einen Überblick gewinnen was wo ist?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.