Jump to content
Sign in to follow this  
zampi91

Struttura database per memorizzare i comuni

Recommended Posts

Salve a tutti. Attualmente sto pensando come realizzare un database in modo tale che da poter memorizzare le località a livello internazionale.

 

Ho pensato di utilizzare i seguenti campi:

Paese (it, de, ch, ...)

Regione (Provincia)

Località (Città/Comune)

 

Però non saprei come fare nel caso in cui si debbano inserire città Asiatiche. Non riesco a trovare una struttura che mi permetta di memorizzare le città senza inserire attributi null.

 

Qualcuno si è già trovato in questa situazione?

 

Grazie a tutti per il vostro tempo.

Share this post


Link to post
Share on other sites

Non capisco il discorso delle città asiatiche. Non hanno la provincia e tutto il resto?

Comunque la cosa più logica, e normalizzante per il db, sarebbe creare tre tabelle:

Nazione: id, nome

Provincia: id, id nazione, nome

CIttà: Id, id provincia, nome

A prima vista trattandosi solo di 3 campi può sembrare che si appesantisca di più, ma quando si andrà a fare una ricerca particolare la differenza si sentirà, e comunque non ci saranno mai campi vuoti.

Share this post


Link to post
Share on other sites

Cercando un database già popolato ho trovato questo sito: GeoNames

 

Da qui è possibile scaricare un file di testo con tutti i comuni del mondo. Il problema sta nel fatto che questo file pesa 950MB e ogni programma sul mio Mac si rifiuta di aprirlo. Come potrei fare? Vorrei evitare di scaricare i file di ogni singola nazione

Share this post


Link to post
Share on other sites
Cercando un database già popolato ho trovato questo sito: GeoNames

 

Da qui è possibile scaricare un file di testo con tutti i comuni del mondo. Il problema sta nel fatto che questo file pesa 950MB e ogni programma sul mio Mac si rifiuta di aprirlo. Come potrei fare? Vorrei evitare di scaricare i file di ogni singola nazione

 

950mb in formato testo non ho mai provato ad aprirli e non so se esiste un programma che lo faccia, ma tagliarne parti progressive (se è ordinato meglio) e poi costituire i vari file separati, o meglio ancora inserire direttamente in DB, si che si può fare in diversi modi. Non so che linguaggio stai usando ma comunque devi lavorare con lo stream del file ed i puntatori.

Che Db vuoi usare? Quasi quasi ti conviene usare un sqlite, tanto sarà solo in lettura e magari se la logica dell'applicazione lo permette potresti dividere il db in diverse parti, almeno per continente...

Share this post


Link to post
Share on other sites

I comuni mi servono per un gestionale (accessibile via web) che attualmente utilizza mysql.

 

Sto pensando di fate un programmino in Python che mi estragga i dati dal file di testo e li inserisca nel db. Oltretutto esistono circa 8 milioni di comuni al mondo.

 

Speravo di trovare un db con i comuni un po' più comodo da utilizzare.

Share this post


Link to post
Share on other sites
I comuni mi servono per un gestionale (accessibile via web) che attualmente utilizza mysql.

Volendo nessuno ti impedisce di usare mysql per il resto (tutto quello che necessita di update, inserimenti etc) e usare sqlite per queste cose. 1 gb solo per i comuni, messo su mysql potrebbe essere un problema per l'hosting a meno che parliamo di una applicazione su misura da usare solo su dedicato etc.... in ogni caso io lo metterei comunque su sqlite, ma vedi tu come ti va meglio.

 

Sto pensando di fate un programmino in Python che mi estragga i dati dal file di testo e li inserisca nel db. Oltretutto esistono circa 8 milioni di comuni al mondo.

 

Speravo di trovare un db con i comuni un po' più comodo da utilizzare.

 

È già bene che oggi si trovino db di questo genere già pronti :)

Comunque dai, con python lo puoi estrarre e manipolare come vuoi

Share this post


Link to post
Share on other sites

Sono riuscito ad estrarre i campi che mi interessavano e io file si è ridotto notevolmente.

 

L'applicazione web è su una VPS. Valuto un attimo se utilizzare salite.

Grazie per il vostro aiuto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×