2010-08-24 5 views
1

J'ai un site qui permet aux gens de télécharger des fichiers sur leur compte, et ils sont affichés dans une liste. Les fichiers pour tous les utilisateurs sont stockés sur des serveurs différents, et ils se déplacent en fonction de leur popularité (c'est un site d'hébergement de fichiers).Stocker des fichiers dans des répertoires dans un gestionnaire de fichiers en ligne

Je souhaite ajouter la possibilité pour les utilisateurs de regrouper des fichiers dans des dossiers. Je pourrais aller la route conventionnelle et créer des chemises physiques sur le disque dur, pour chaque utilisateur sur le serveur, et les transversal comme prévu. L'inconvénient est que les fichiers de l'utilisateur seront liés à un seul serveur. Si ce serveur commence à utiliser de l'espace (ou si de nombreux fichiers sont populaires en même temps), il sera très difficile de l'atténuer. Ce que je pensais faire était de conserver la nature sans état des fichiers, de les stocker sur n'importe quel serveur de fichiers et de stocker simplement l'ID du dossier (en plus de l'ID utilisateur qui possède le fichier) avec chaque fichier dans la base de données. Ainsi, lorsqu'un utilisateur décide de déplacer un fichier, il ne se déplace pas physiquement, vous changez simplement l'ID du dossier dans la base de données.

Est-ce une bonne idée? J'utilise php et mysql.

Répondre

2

Oui, c'est le cas. Je ne vois aucun inconvénient, sauf peut-être plus de requêtes à la base de données, mais avec une bonne indexation de l'ID du dossier parent, cela sera probablement plus rapide que d'accéder directement au système de fichiers.

0

Oubliez les dossiers et laissez les utilisateurs tag leurs fichiers, plusieurs étiquettes par fichier. Puis laissez-les afficher fichiers étiquetés X. Ce n'est pas très différent de l'implémentation que les dossiers virtuels, mais il est beaucoup plus flexible pour les utilisateurs.

Questions connexes