Migliore struttura dati per l'implementazione di drop-down dipendenti

1

Voglio implementare la funzione di discesa dipendente in una pagina web nel mio sito Web che contiene i seguenti menu a discesa:

  1. Nome gruppo utente
  2. Eventi di gruppo (menu a discesa dipendente)
  3. Luoghi (menu a discesa dipendente)

Ora, quello che voglio è in base all'opzione selezionata nel primo elenco a discesa che è il nome del gruppo (gli altri due saranno disabilitati fino a quando non viene selezionato), l'elenco degli eventi viene visualizzato; dovrebbero verificarsi solo quei valori rilevanti per il nome del gruppo selezionato. Allo stesso modo, i valori delle posizioni dovrebbero essere pertinenti al nome del gruppo e all'evento selezionato. Non solo questo, ma voglio anche che il design sia irrilevante rispetto al livello di dipendenze o all'ordine corrente (nome di gruppo- > eventi- > posizioni). Anche se desidero aggiungere temporizzazioni come un altro livello di dipendenza, il design dovrebbe incorporarlo.

Ora, in tutte le domande relative a questo problema, le tabelle vengono utilizzate per memorizzare i dati in database come:

Tuttavia, desidero prendere in considerazione le seguenti alternative:

  1. Trie : poiché l'ordine in cui sono selezionati gli attributi è definito, potremmo usare un trie per memorizzare tutte le possibili combinazioni di l'elenco dei valori in ogni elenco a discesa dipende l'uno dall'altro. utilizzando ricerca prefisso, potremmo recuperare i valori del prossimo menu a discesa, in base al valore selezionato nel precedente.
  2. Tabella : simile a quella usata in precedenza, possiamo memorizzarla nel database ma quindi il numero di livelli di dipendenze non è veramente fisso e può aumentare in futuro. Come gestirlo? (Supponendo che io non voglia per modificare lo schema ogni volta che ciò accade)
  3. Grafico : potremmo anche memorizzare le possibili combinazioni in un diretto grafico e in base ai valori selezionati possiamo visualizzare tutto il successivo nodi adiacenti nel successivo drop-down dipendente.

Quale di questi è un approccio migliore, tenendo conto dell'estensibilità o delle modifiche future? O qualsiasi altro suggerimento per le strutture di dati sono anche benvenuti. Si prega di spiegare con una corretta progettazione in dettaglio considerando la complessità in mente.

    
posta ekjot 03.03.2015 - 06:38
fonte

1 risposta

4

Quasi certamente penserai a questo. La ricerca di una struttura dati ideale è una soluzione alla ricerca di un problema.

Guarda attentamente l'esempio che hai dato. Tutti e tre i dropdown hanno una diversa origine dati, e implicano una struttura relazionale. Solo osservando i nomi dei tuoi menu a discesa, so che hai tre tabelle: Gruppi, Eventi e Località, ciascuna con chiavi primarie e chiavi esterne che associano le tabelle l'una con l'altra.

Tre tabelle in un database relazionale sono la struttura dati ideale per il tuo scenario.

Se hai bisogno di una rappresentazione dei dati che può essere utilizzata in una pagina web, crea un oggetto ViewModel, ma in applicazioni non banali, spesso è necessario AJAX nell'elenco per un determinato menu a discesa, in base alla selezione fornita dal utente nel precedente menu a discesa. Gli elenchi possono essere troppo grandi per essere incorporati nella pagina Web attuale.

    
risposta data 03.03.2015 - 17:55
fonte

Leggi altre domande sui tag