Zitat von
Blacklotus:
// Denke das ist am sinnvollsten über konstanten zu verwalten ?
Nein !
Mach eine 4. Tabelle mit Kursen:
Code:
Bilder.db
=========
Bild_ID Integer // Primärschlüssel
Veranstaltung_ID Integer
Datum DateTime
Filename string
MD5_Hash string
Code:
Veranstaltung.db
================
Veranstaltung_ID Integer // Primärschlüssel
Name string
Bemerkung string
Ich habe die Tabelle bewusst nicht Kurse.db genannt, sondern Veranstaltung, damit wird das Ganze universell und Du kannst es für alles Nutzen
(Schulfeste, Schnappschüsse mit Schülern aus mehreren Kursen, ...)
In Deinem Fall werden in Veranstaltung.db die Kurse eingetragen.
Zitat von
Blacklotus:
//Unter Kurse würden somit auch die Exkursionen fallen.
Wie gesagt mir geht es darum das nicht mehrmals
zu müssen.
Das ist damit erreicht, wenn neue Kurse hinzukommen, brauchst Du nur die Tabelle erweitern.
Grundsätzlich ist es besser auf "Konstanten" zu Verzichten und dafür eine Tabelle zu erzeugen, in der die Konstanten "erklärt" sind. Damit wird die Datenbank von Deinem Programm unabhängig, und es ist möglich z.B. auch ein Web Frontend (Bilder Galerie) in z.B. PHP zu schreiben.
Die Wahl der Datenbank muss man natürlich den Gegebenheiten anpassen.
Wenn keine Installation einer Datenbank möglich ist, bleiben nicht mehr so viele Alternativen übrig.
Das TClientDataSet ist keine schlechte Wahl, das habe ich in kleineren Projekten auch schon verwendet.
Warum habe ich den MD5_Hash noch mal mit in die Tabelle geschrieben?
Deine Idee den MD5_Hash zu verwenden um Dateien zu identifizieren hat mir gut gefallen.
Das ist z.B. Nützlich, wenn die Bilder verschoben wurden. Mann könnte wie ich oben schon geschrieben habe eine Funktion schreiben, die die "fehlenden" Bilder wieder sucht und den Filename korrigiert.
Sonst musst Du jedes Mal, wenn Du Änderungen an der Verzeichnisstruktur vornimmst alle betroffenen Bilder in der Datenbank editieren (Feld Filename).