memorizzazione del modello di mappa nel database

1

Sto lavorando su un'applicazione che visualizza mappe di coropleta . Queste mappe sono di tutti i tipi diversi, alcune mostrano stato per contea, nazione per stato / provincia o mondo per paese.

Come dovrei gestire la memorizzazione delle informazioni della mappa nel database?

I miei pensieri:

Non avrò bisogno di fare interrogazioni per trovare POI all'interno di una regione, quindi non penso che sia necessario utilizzare tipi di dati spaziali. Sto considerando di memorizzare una mappa come oggetto geoJSON (sto usando la libreria di mappatura JS che accetta geoJSON).

L'unico problema è se voglio una mappa degli Stati Uniti nord-est. Poi avrei geoJSON per gli Stati Uniti e uno separato per il nordest degli Stati Uniti, che sarebbe ridondante.

Avrebbe senso avere un database di forme in cui avevo ciascuno stato poi quando avevo bisogno di una mappa degli Stati Uniti che potevo interrogare per ogni stato, e quando avevo bisogno di una mappa degli Stati Uniti nord-est avrei potuto di nuovo interrogare per quello che ho bisogno?

Nota : non sono interessato alla memorizzazione dei dati per ogni regione, solo la regione stessa. Richiederò i dati al volo per la regione specifica.

    
posta Timigen 05.06.2014 - 16:39
fonte

1 risposta

1

Avere informazioni GeoJSON per gli Stati Uniti e uno separato per il nordest degli Stati Uniti è non ridondante. Uno ti sta dicendo informazioni relative a tutti gli Stati Uniti, mentre l'altro ti sta solo dicendo informazioni relative al nordest degli Stati Uniti. Senza quest'ultimo, dovresti accumulare informazioni relative a tutte le regioni degli Stati Uniti per ottenere lo stesso valore.

Questo potrebbe non sembrare un gran lavoro, ma se consideri che avere informazioni GeoJSON per il nordest degli Stati Uniti è ridondante quando hai New York, Maine, Massachusetts, ecc., vedi rapidamente che emerge uno schema frattale. Per essere in grado di calcolare il valore cumulativo per gli stati uniti, è necessario interrogare e scorrere ciclicamente tutte le contee di ogni stato negli stati uniti, il che quando viene eseguito in runtime non è un piccolo ordine.

Se ti infastidisce che la modifica di queste informazioni renderà non più accurata ogni regione madre, devi solo salvare il delta della modifica in ciascuna regione madre fino a quando non raggiungi il livello di paese. Se preferisci, puoi persino decidere di salvare le informazioni calcolate nella propria raccolta nel caso in cui volessi eliminarlo e ricominciare da capo.

Se è necessario salvare molti tipi diversi di informazioni relative a una regione, considerare di mantenere le informazioni sulla regione nella propria raccolta e le informazioni sui dati della regione separatamente con un riferimento alla regione stessa, in modo da evitare di ripeterle per ogni tipo di possibile query che desideri eseguire. Potresti anche voler memorizzare nella cache le informazioni sulla regione poiché è improbabile che cambi, mentre i dati che stai richiedendo potrebbero.

Spero che ti aiuti!

    
risposta data 05.06.2014 - 17:25
fonte

Leggi altre domande sui tag