Nur eine Anregung: Ich habe etwas ähnliches für Labordaten gemacht, die jeweils einem Vorgang angehängt werden. Ich schreibe aber die Anhänge nicht in ein ZIP oder einen Ordner sondern in BLOB-Felder einer Firebird-Datenbank. Die Labordaten sind nicht so riesig (jeweils etwa 50kB) , es gibt nur etwa 2500 Vorgänge und pro Vorgang wohl höchstens zwischen 20 und 50 Labordatensätze. Das hat den Charme, dass in der zweigeteilten Ansicht (links Vorgänge, rechts Labordaten) nur ein bisschen
SQL und Stream-Handling notwendig ist. Kein Zip, keine Probleme mit Vertraulichkeit und Schutz, keinen Ärger mit Verfügbarkeit und Verzeichnisproblemen. Und ein "Umzug" oder Datensicherung ist auch kein Problem...
Die Verträge könnte man ja ebenfalls in einer Tabelle speichern.