Sto sviluppando un'applicazione in cui gli utenti possono creare determinati oggetti business (per semplicità chiamiamoli solo 'oggetti') che sono memorizzati in una tabella in un database relazionale (i nomi delle colonne sono banali: id(int, primary key)
, name(varchar)
, type(varchar)
, e pochi altri che non sono rilevanti).
Le operazioni disponibili all'utente tramite la GUI sono tipiche: creazione, lettura, aggiornamento, elenco (con filtri per nome, tipo, ecc.)
Ora, ho bisogno di implementare un paio di nuove operazioni: la possibilità di creare una struttura gerarchica di "cartelle" e consentire all'utente di creare, nominare / rinominare e spostarli attraverso questa gerarchia. Inoltre, la possibilità di "inserire" gli oggetti degli utenti in una qualsiasi delle "cartelle" e filtrare l'elenco di tutti gli oggetti tramite il "percorso" completo di questo oggetto (in base al nome di una qualsiasi delle sue cartelle padre).
Sono sicuro che tali attività siano state eseguite da molte persone in passato, e sono curioso di vedere quale tipo di struttura DB sarebbe ottimale per realizzare questo (specialmente per filtrare gli oggetti con il loro "percorso completo" ).