Ik moet voor een webapplicatie een folderstructuur weergeven, waar bestanden in geplaatst zijn. Deze folderstructuur moet worden opgeslagen in een (My)SQL database, en moet tevens gesorteerd kunnen worden op verschillende velden zoals naam, aanmaakdatum of op de grootte van de bestanden in de folderstructuur. Ik wil het ongeveer zoals in dit plaatje (screenshot van Nautilus, Gnome's filebrowser) presenteren aan de gebruiker:

Nou zit ik een beetje te tobben over welke methode ik het beste kan gebruiken om de boomstructuur in MySQL op te slaan. Aangezien het uitlezen van de tree efficient moet gebeuren dacht ik in eerste instantie aan de nested set methode (overigens is het uitlezen van subtrees niet nodig), maar dat maakt het sorteren op de verschillende velden aan de database kant lastig (onmogelijk?). Misschien dat ik dit in PHP kan doen, aangezien de tree daar toch opgebouwd moet worden. Ik vraag me echter af of er nog alternatieven zijn.
Iets anders waar ik niet zeker van ben is of ik de bestanden zelf en de folders het beste in aparte tabellen, of in de zelfde tabel kan op slaan. Het lijkt me aan de ene kant efficienter voor updates in de folderstructuur om ze apart te houden, maar ik weet niet of/hoe ik dan in één query de folders en bestanden kan ophalen.
Kan iemand mij adviseren of een duwtje in de juiste richting geven?
PS: Een andere optie die ik had overwogen, maar toch niet voor gekozen heb, is om simpelweg direct het lokale bestandssysteem te gebruiken. Maar vanwege mogelijke verschillen in character sets, toegestane tekens en bestandsnaam-lengtes onder verschillende besturingssystemen/filesystems heb ik hier toch niet voor gekozen. Op het moment worden de bestanden zelf wel opgeslagen direct in het bestandssysteem, maar in één enkele directory en als bestandsnaam wordt simpelweg de primary key van een bijbehorend record in de database (waar info zoals datum, de persoon die het bestand geplaatst heeft etc. in staan.)

Nou zit ik een beetje te tobben over welke methode ik het beste kan gebruiken om de boomstructuur in MySQL op te slaan. Aangezien het uitlezen van de tree efficient moet gebeuren dacht ik in eerste instantie aan de nested set methode (overigens is het uitlezen van subtrees niet nodig), maar dat maakt het sorteren op de verschillende velden aan de database kant lastig (onmogelijk?). Misschien dat ik dit in PHP kan doen, aangezien de tree daar toch opgebouwd moet worden. Ik vraag me echter af of er nog alternatieven zijn.
Iets anders waar ik niet zeker van ben is of ik de bestanden zelf en de folders het beste in aparte tabellen, of in de zelfde tabel kan op slaan. Het lijkt me aan de ene kant efficienter voor updates in de folderstructuur om ze apart te houden, maar ik weet niet of/hoe ik dan in één query de folders en bestanden kan ophalen.
Kan iemand mij adviseren of een duwtje in de juiste richting geven?
PS: Een andere optie die ik had overwogen, maar toch niet voor gekozen heb, is om simpelweg direct het lokale bestandssysteem te gebruiken. Maar vanwege mogelijke verschillen in character sets, toegestane tekens en bestandsnaam-lengtes onder verschillende besturingssystemen/filesystems heb ik hier toch niet voor gekozen. Op het moment worden de bestanden zelf wel opgeslagen direct in het bestandssysteem, maar in één enkele directory en als bestandsnaam wordt simpelweg de primary key van een bijbehorend record in de database (waar info zoals datum, de persoon die het bestand geplaatst heeft etc. in staan.)