Alles in Blobs abzulegen bläht die Datenbank ungemein auf. Die sind ok, wenn es nicht zu viele Daten werden, ansonsten würd ich auf jedenfall eine dateibasierte Lösung der Dokumente suchen. Ich habe das in einem Projekt so gelöst, dass alle Dokumente (ich nenn sie jetzt mal passender Anhänge) in einem Verzeichnis auf dem Server abgelegt sind, das selbst noch unterteilt ist in Jahr und Monat (\\Server\Ablagen\2007\06 z.B.) Das hat den Vorteil, dass nachher nach einiger Zeit nicht Millionen Dateien in einem Verzeichnis direkt liegen, sondern nochmals unterteilt sind. Erwartest du viele Anhänge, so kannst du auch eine Kombination aus Jahr\Woche oder Jahr\Monat\Tag nehmen, je nachdem wie tief du greifen willst.
Die Anhänge selbst verwalte ich in einer getrennten Anhangtabelle, wo Datum, Dateiname und natürlich in deinem Fall Verlinkung zur Adresse gespeichert ist, damit der Anhang auch eindeutig zugeordnet werden kann. Wahrscheinlich wirst du sehr schnell merken, dass neben der Verlinkung zur Adresse eventuell noch andere Kriterien einfliessen können. Dann kannst du relativ leicht diese Anhangtabelle anpassen.
Die Dateinamen habe ich als
GUID gespeichert, damit doppelte Anhänge keine Probleme machen beim speichern. Jede
GUID ist eindeutig, und ist in der Anhangtabelle hinterlegt. Daneben kannst du natürlich auch noch den ursprünglichen Namen speichern wenn du willst. Das ist ja kein Problem.
Um Platz auf dem Server zu sparen habe ich zusätzlich jeden Anhang noch gezippet.
Zu meinen Vorrednern kann ich nur sagen, lieber kein
MySQL. Aber lies dir bezüglich der Datenbankwahl einfach mal einige der tausend "Welche Datenbank ist die beste" Threads hier im Forum durch. Danach kannst du ja dann immer noch gezielte Fragen diesbezüglich fragen. Mein Favorit ist MS
SQL 2005 Express. Für umme, leicht erweiterbar, und leicht zu administrieren.