molto più semplicemente salvi i vari file in una struttura di cartelle (non tutti nella stessa) e li salvi con un hash (non del nome del file ma tipo "sha1(uniqid(microtime(), true))" in modo da avere più casualità nei nomi) dopo di che tutte le informazioni sul file le butti nel database

la struttura di cartelle, di solito io la creo usando le prime lettere del file ... se il file inizia con 1234567890 (e poi continua ... lo sha1 sono 20 coppie esadecimali) l'albero delle cartelle sarebbe:
1/12/1234567890......