Domanda

Ho un sito che permette alle persone di caricare i file sul proprio conto, e sono visualizzati in un elenco. I file per tutti gli utenti sono memorizzati su server diversi, e si muovono in base giro su quanto popolare sono (il suo un file sito di hosting).

Voglio aggiungere la possibilità per gli utenti di raggruppare i file in cartelle. Potrei andare via convenzionale e creare cartelle fisici sul disco rigido, per ogni utente sul server, e trasversale loro come previsto. L'aspetto negativo di che è i file dell'utente saranno vincolati ad un singolo server. Se tale server si avvia in esecuzione di spazio (o più file ottenere popolare allo stesso tempo), si otterrà molto difficile da mitigarlo.

Quello che ho pensato di fare è mantenere la natura stateless di file, permettendo loro di essere memorizzati su uno qualsiasi dei file server, e semplicemente memorizzare l'ID della cartella (oltre all'ID utente che possiede il file) ad ogni file in il database. Così, quando un utente decide di spostare un file, esso non ottiene fisicamente spostato ovunque, basta cambiare l'ID della cartella nel database.

È una buona idea? Io uso PHP e MySQL.

È stato utile?

Soluzione

Sì, lo è.

Non vedo alcun aspetto negativo, tranne forse più query al database, ma con una corretta indicizzazione della id cartella principale, questo sarà probabilmente più veloce di accedere direttamente al file system.

Altri suggerimenti

Dimenticate cartelle e lasciare che gli utenti tag i propri file, più tag per file. Poi lasciarli vedono file marcati X . Questo non è molto diverso da implementare rispetto cartelle virtuali ma è molto più flessibile per gli utenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top