L'altro approccio è chiamato "insieme nidificate", penso, non "albero nidificato".
In ogni caso, un aspetto positivo di una mappa del sito è che potresti conoscere la sua profondità massima. Penso che il problema con il modello di adiacenza sia che l'SQL corrispondente funziona su un livello alla volta, quindi se hai livelli 'n' allora hai bisogno di un ciclo di istruzioni SQL 'n' ... ma io penso (I ' Non sono sicuro) che se si conosce il massimo 'n' in anticipo, è possibile codificare il corrispondente numero di SQL a numero fisso di multipli.
0,3 secondi mi sembra un tempo molto lungo per calcolare 200 pagine, quindi probabilmente è OK.
Anche una mappa del sito non viene aggiornata molto spesso; quindi, anche se richiede molto tempo per recuperare da SQL, è possibile memorizzare nella cache l'albero recuperato/calcolato nella RAM.
In alternativa, anziché preoccuparsi dell'SQL per costruire un albero, è possibile archiviarlo il più semplicemente possibile (come elenco di adiacenza), recuperarlo dal database come un semplice insieme di righe e creare l'albero nella RAM (usando loop nel linguaggio di programmazione di alto livello) invece di usare loop in SQL per costruire l'albero usando istruzioni SQL.
Quindi, in pratica, la tua domanda è se qualche sconosciuta attuazione di alcune datastructure, in esecuzione su una parte sconosciuta di hardware andando a prendere meno di 0,3 sec? Ben fatto. – shoosh
@Shy - Database innoDB MySQL su stack LAMP. –
Non dovrebbe essere così difficile mettere insieme un prototipo e fare dei test da banco. Quale RDBMS lo ospiterà? –