Pregunta

Tengo un sitio que permite a sus usuarios subir archivos a su cuenta, y en que se muestran en una lista. Los archivos para todos los usuarios se almacenan en servidores diferentes, y se mueven en torno basan en lo popular que son (es un archivo de sitio de alojamiento).

Quiero agregar la capacidad de los usuarios para agrupar los archivos en carpetas. Podría seguir la ruta convencional y crear carpetas físicas en el disco duro, para cada usuario en el servidor, y transversal como se esperaba. La desventaja de esto es los archivos del usuario estarán obligados a un solo servidor. Si ese servidor comienza a funcionar de espacio (o muchos archivos consiguen popular al mismo tiempo), se pondrá muy difícil para mitigarlo.

Lo que pensé en hacer es mantener la naturaleza sin estado de los archivos, lo que les permite ser almacenados en cualquiera de los servidores de archivos, y simplemente almacenar el ID de carpeta (además de la identificación del usuario propietario del archivo) que contiene cada archivo en la base de datos. Así que cuando un usuario decide mover un archivo, no llegar a ninguna parte movimiento físico, que acaba de cambiar el ID de carpeta en la base de datos.

¿Es una buena idea? Yo uso PHP y MySQL.

¿Fue útil?

Solución

Sí, lo es.

No veo ningún inconveniente, excepto tal vez más consultas a la base de datos, pero con una correcta indexación del ello carpeta principal, esto probablemente será más rápido que el acceso al sistema de archivos directamente.

Otros consejos

Olvídate de carpetas y dejar que los usuarios etiqueta sus archivos, varias etiquetas por archivo. Pues que ver archivos marcados X . Esto no es muy diferente de implementar que las carpetas virtuales, pero es mucho más flexible para los usuarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top