Qual è un modo efficace per recuperare i conteggi dei prodotti a più livelli di una gerarchia?

3

Sto lavorando su un sito web di e-business per vendere libri e voglio anche mostrare il numero di libri disponibili nell'elenco delle categorie.

L'elenco delle categorie contiene il genere e il formato (tascabile, ebook, audiolibro, ecc.). In ogni elemento in genere e in formato vorrei mostrare il numero di prodotti disponibili dalla lista. Naturalmente, quando si approfondisce la gerarchia, si recuperano informazioni più specifiche dei libri disponibili a quel livello.

Per esempio ci sono 2000 libri disponibili nel genere "medicina" e se seleziono il formato "tascabile" allora ci sono 200 libri disponibili rimasti. In altre parole, hai combinato "pocket" e "medicine" e ora sai che ci sono 200 libri tascabili disponibili in totale nel genere "medicine".

La mia domanda è:

Come si crea questa funzionalità senza fare molti sforzi per chiedere al database la quantità di prodotti disponibili in ciascun elemento? Devi acquistare un'applicazione o un plug-in speciale? Ricorda che ci sono milioni di libri nel database.

    
posta What'sUP 25.08.2011 - 08:11
fonte

3 risposte

8

Precederai i dati una volta ogni tanto (24 ore f.e.) - e memorizzi il risultato in cache (questo può variare da una tabella ottimizzata speciale a una cache di file).

Nessuno conterà la quantità di libri e noterà che ci sono solo 1800 invece di 2200, è solo per indicazione e non deve essere sempre accurato.

    
risposta data 25.08.2011 - 08:37
fonte
1

Sono d'accordo con l'approccio di precalcolare le cifre proposte da Mr. Wesley van Opdorp. Il suo approccio renderà la vostra elaborazione on-line inalterata dai cambiamenti nelle categorie.

C'è anche un'altra opzione che puoi prendere in considerazione.

Puoi creare una tabella delle statistiche con più colonne, ognuna delle quali rappresenta un livello all'interno dell'albero che mostri sul lato sinistro.

Ogni volta che un'operazione di creazione, aggiornamento o cancellazione avviene su un libro, il numero nella colonna corrispondente della tabella delle statistiche viene aumentato o diminuito (l'aggiornamento è menzionato qui nel caso in cui si aggiorni una categoria di un libro, in in quale caso verranno effettuati 2 aggiornamenti alla tabella delle statistiche). Puoi usare la tabella delle statistiche per mostrare la struttura.

Ciò manterrà i numeri precisi e renderà molto veloce la visualizzazione dei dati.

    
risposta data 25.08.2011 - 13:49
fonte
1

Se lo desideri accurato al 100% al minuto ...

Calcola periodicamente la situazione corrente e memorizzala nella cache, quindi vai e recupera le modifiche da quel momento.

Il periodo di tempo "periodicamente" è un attento equilibrio basato sul volume di dati (inclinato verso un lungo periodo) e sul volume delle modifiche (inclinato verso un breve periodo). Mantieni buone statistiche, in modo che tu possa spostarti mentre il saldo cambia.

    
risposta data 25.08.2011 - 09:50
fonte

Leggi altre domande sui tag