Hola, te voy a responder desde mis conocimientos como ex SysOp de un servidor de internet.
Por lo general, se arma una base datos de contenidos, pero no con los contenidos en si, sino, por ejemplo, una base de datos cuyos contenidos son los PATH de donde se encuentran los archivos. En la mayoria de los casos, se arma una base de datos con una estructura similar a esta:
TABLA>ARCHIVOS
id_numero_de_archivo - autonumerico, indice
path_del_archivo - ruta donde se guardo el archivo
peso_del_archivo - peso del archivo, para informarlo si es necesario
codigo_seguridad - se asigna un codigo para poder ser descargado (validacion)
veces_bajado - se van sumando las veces que se descargo
habilitado - si esta o no disponible el archivo
etc.. etc..
Con esto, se trata de evitar que hagan
http://www.tuserver.com/tuarchivo.zip y lo descarguen, puesto a que por ejemplo tuarchivo.zip es el id_numero_de_archivo=258415, cuya descarga debe ser validada.
Espero haberte orientado un poco.
Saludos