Va benissimo mettere i files in una cartella. Semplicemente, quando carichi un file, lo rinomini con un nome standard (che so, "compiti_matematica' . $id . '.pdf") dove $id è l'id del file caricato (che con uno script del tipo "insert into table" avrai inserito nel database, e la stessa cosa farai con la descrizione, in modo che id e descrizione siano due parametri propri di ciascun recording. Per richiamarlo in una tabella html nel sito, basta che fai la "select * from 'scuola' ORDER BY id DESC", per mettere l'ultimo arrivato in cima alla lista e poi metti in ciclo una cosa come questa...
<?
echo
"<table class='table' width='400'>
<td width='100'>File numero ' . $row["id"] . '</td>
<td width='200'>' . $row["description"] . '</td>
<td width='100'>Scarica il file</tr>
"
?>
Spero di essermi spiegato!