Ayer en una de las reuniones llegó un debate interesante y que me gustaría comentaros para contrastar vuestras opiniones:
  Problema:
Tenemos X usuarios que tienen unas carpetas específicas cuyo nombre está codificado en SHA y MD5, cada carpeta es única y dentro de ella pueden haber más directorios (hasta 5).  
Se declararon dos ideas de solución:  Solución A:
Guardar en BD el usuario, carpeta y URL de cada archivo almacenado, relacionándolo con el usuario. 
De esta forma se evita que otros usuarios accedan por URL a un directorio ajeno y descarguen o adquieran los archivos del otro usuario sin permiso.   
Solución B:
Partimos de la base de que cada carpeta es única e intransferible. 
Crear un script para que recorra la carpeta que coincida con el código de seguridad aplicado (SHA y MD5 de un HASH por usuario), devolver al usuario todos los directorios y archivos de esa carpeta madre.  
Después de mucho debatir, no llegamos a ningún lado..... básicamente porque cada archivo ha de pasar un control se seguridad que estará almacenado en la BD. 
Por ejemplo: 
Archivo público = INT (0/1)
Fecha de Caducidad = DATETIME 
Por este último dato yo escogí la 
Opción A, sin embargo mis muchachos me dijeron la siguiente cita: 
 Cita:  PHP Es más rápido leyendo directorios y subdirectorios que mysqli haciendo una consulta a BD de los archivos que tenga almacenados un usuario en una carpeta.
    Pero.... hasta que punto PHP es más rápido que MYSQLi? Hablamos de tiempo real a ojo humano (segundos, minutos)? o tiempo de proceso a nivel máquina(Microsec)? 
Un saludo.