Disclaimer per i contenuti del Blog


DISCLAIMER:Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità . Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n° 62 del 7.03.2001.
L'autore non è responsabile per quanto pubblicato dai lettori nei commenti ad ogni post. Verranno cancellati i commenti ritenuti offensivi o lesivi dell’immagine o dell’onorabilità di terzi, di genere spam, razzisti o che contengano dati personali non conformi al rispetto delle norme sulla Privacy. Alcuni testi o immagini inserite in questo blog sono tratte da internet e, pertanto, considerate di pubblico dominio; qualora la loro pubblicazione violasse eventuali diritti d'autore, vogliate comunicarlo via email. Saranno immediatamente rimossi. L'autore del blog non è responsabile dei siti collegati tramite link, del loro contenuto che può essere soggetto a variazioni nel tempo ne degli eventuali danni derivanti dall'utilizzo proprio od improprio delle informazioni presenti nei post.

giovedì 20 marzo 2014

Tabelle MySQL decodifica comuni, province e regioni italiane



ATTENZIONE - IL DATABASE NON È AGGIORNATO
Se un giorno dovessi riuscire ad allinearlo lascerò una nota...

Capita spesso, quando ci si occupa di applicazioni gestionali, di dover decodificare comuni, province e regioni o, ad esempio, estrapolare tutti i comuni di una certa provincia, desumere dal codice fiscale la descrizione del comune di nascita, realizzare un pop-up che permette di selezionare il comune desiderato senza scrivere una <SELECT></SELECT> composta da più di 8000 elementi (tanti sono i comuni italiani) ma che, partendo dalla regione, ci faccia selezionare in cascata provincia e comune estrapolando ad ogni passaggio solo le righe di tabella necessarie (jQuery e Ajax aiutano non poco nella realizzazione di simili pop-up).

 Per quanto mi riguarda ho penato non poco a reperire suddette tabelle ed ho quindi deciso di renderle disponibili.

Gli indici definiti sono quelli che ho trovato più comodi per la mia applicazione, lascio a voi il compito di definirne di nuovi così da realizzare una struttura che si adatta al meglio alla vostra applicazione; faccio notare che per mia comodità ho creato una regione ed una provincia per l'estero (sigla provincia EE, codice regione 99) dal momento che nella tabella comuni sono presenti anche gli stati esteri (codici Znnn), come previsto dalla struttura del nostro codice fiscale.

Questa è la struttura delle tabelle:

-- phpMyAdmin SQL Dump
-- version 3.5.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: Mar 20, 2014 alle 12:00
-- Versione del server: 5.0.77
-- Versione PHP: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `ComuniProvinceRegioni`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `tbComuni`
--

CREATE TABLE IF NOT EXISTS `tbComuni` (
  `nome_comune` text character set utf8 collate utf8_unicode_ci,
  `siglaprovincia_comune` varchar(2) NOT NULL,
  `codice_catastale` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `codice_istat` int(7) NOT NULL,
  UNIQUE KEY `codice_catastale` (`codice_catastale`),
  KEY `fkey_comuni` (`siglaprovincia_comune`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tabella comuni d''Italia';

-- --------------------------------------------------------

--
-- Struttura della tabella `tbProvince`
--

CREATE TABLE IF NOT EXISTS `tbProvince` (
  `sigla_provincia` varchar(2) NOT NULL,
  `nome_provincia` text,
  `capoluogo_provincia` text,
  `codiceistatregione_provincia` varchar(2) default NULL,
  `codiceistat_provincia` text,
  PRIMARY KEY  (`sigla_provincia`),
  KEY `fkey_province` (`codiceistatregione_provincia`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tabella province d''Italia';

-- --------------------------------------------------------

--
-- Struttura della tabella `tbRegioni`
--

CREATE TABLE IF NOT EXISTS `tbRegioni` (
  `nome_regione` text,
  `capoluogo_regione` text,
  `codiceistat_regione` varchar(3) NOT NULL,
  PRIMARY KEY  (`codiceistat_regione`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tabella regioni d''Italia';

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


 Il file può essere scaricato da qui.

8 commenti:

  1. Salve, soltanto per curiosità, i dati all'iterno delle tabelle sono stati presi da fonti attendibili (es. istat). Grazie

    RispondiElimina
    Risposte
    1. Si, le fonti erano attendibili (ma non le ricordo). Un anno e mezzo fa venne fatta una spunta per verificare che la gerarchia fosse corretta.

      Elimina
  2. E' un db vecchio, mancano centinaia di nuovi comuni

    RispondiElimina
    Risposte
    1. Purtroppo hai ragione, non è stato semplice tenerlo aggiornato. Metto un avvertimento in cima al post...

      Elimina
  3. Grazie per il lavoro fatto!

    RispondiElimina
    Risposte
    1. Grazie, purtroppo il database non è aggiornato... Sto lavorando ad un nuovo archivio più facilmente aggiornabile :)

      Elimina
  4. salve per caso si ha avuto modo di lavorare ad un db aggiornato al 2017? grazie

    RispondiElimina