Tendrias que usar una tabla (en cualquier motor de BD de tru preferencia) que se encargue de mantener los vínculos:
Código:
id_vinculo | id_contrato | desc_docto | tipo_docto | path
------------------------------------------------------------------------
1 1 Instrucciones Cliente DOC C:\Doctos\Uno\Instruc.doc
2 1 Foto Articulos JPG
C:\Doctos\Uno\Asilosquire.jpg
3 2 Mail de pedido MSG
C:\Doctos\Uno\Pedido.msg
De manera que si por ejemplo se abre el contrato con la ID "1", con un simple query obtienes los nombres y path (y alguna otra info) de los archivos que le corresponden (en este ejemplo un DOC y un JPG). Si escogiera el contrato con la clave 2, se tiene que abrir el archivo MSG que se encuentra en el path.
El path puede ser absoluto y no seria necesario escribirlo pues con uno de los componentes de archivos de windows se puede poner un bonito cuadro para seleccionar el archivo y guardar el path completo. Esto lo puedes hacer desde tablas planas DBF o Paradox hasta MySQL o FB...
Me parece sencillo, platicame si te sirve...Perdón por el codigo movido pero no encontre forma de colocarlo correctamente.
Bajo este esquema es necesario primero crear el contrato o factura y posteriormente vincularle los documentos que se requieran, como ves en el ejemplo no es necesario que los archivos vinculados residan en la misma carpeta, pueden estar dispersos ya que lo que se vincula es el path completo del archivo. Obviamente si este dato se sube a un servidor puedes entonces forzar a que los documentos "vinculados" se almacenen en una sola carpeta por lo que el path absoluto sale sobrando...