# Merge Database IT e CH ## Descrizione Questo processo ha unito i dati delle province e comuni di Italia e Svizzera in un unico dataset, aggiungendo le colonne `nazione_id`, `created_at` e `updated_at`. ## File Generati ### 1. `provincia_merged.sql` - **Contenuto**: Tutte le province IT e CH - **Struttura**: `id`, `nome`, `sigla`, `created_at`, `updated_at`, `nazione_id` - **Statistiche**: - Province IT: 111 (ID 1-111, nazione_id = 118) - Province CH: 26 (ID 112-137, nazione_id = 220) - **Totale**: 137 province ### 2. `comune_merged.sql` - **Contenuto**: Tutti i comuni IT e CH - **Struttura**: `id`, `provincia_id`, `nome`, `codice_catastale`, `created_at`, `updated_at`, `nazione_id` - **Statistiche**: - Comuni IT: 8.002 (ID originali 1-110014, nazione_id = 118) - Comuni CH: 2.136 (ID 110015-112150, nazione_id = 220) - **Totale**: 10.138 comuni ## Logica di Merge ### Province - **IT**: Mantengono gli ID originali (1-111) - **CH**: Rinumerate da 112 in poi (112-137) - **Mappatura CH**: - Zürich: 1 → 112 - Bern: 2 → 113 - Luzern: 3 → 114 - Uri: 4 → 115 - Schwyz: 5 → 116 - Obwalden: 6 → 117 - Nidwalden: 7 → 118 - Glarus: 8 → 119 - Zug: 9 → 120 - Fribourg: 10 → 121 - Solothurn: 11 → 122 - Basel-Stadt: 12 → 123 - Basel-Landschaft: 13 → 124 - Schaffhausen: 14 → 125 - Appenzell Ausserrhoden: 15 → 126 - Appenzell Innerrhoden: 16 → 127 - St. Gallen: 17 → 128 - Graubünden: 18 → 129 - Aargau: 19 → 130 - Thurgau: 20 → 131 - Ticino: 21 → 132 - Vaud: 22 → 133 - Valais: 23 → 134 - Neuchâtel: 24 → 135 - Genève: 25 → 136 - Jura: 26 → 137 ### Comuni - **IT**: Mantengono gli ID originali (1-110014) - **CH**: Rinumerati da 110015 in poi (110015-112150) - **Provincia_id**: Aggiornati secondo la nuova numerazione delle province - **Esempio**: Comuni di Zürich ora hanno `provincia_id = 112` invece di `1` ## Script Utilizzati ### `merge_comuni.py` - Parsa i file `comune.sql` di IT e CH (gestisce tutte le query INSERT multiple) - Gestisce correttamente gli apostrofi nei nomi dei comuni (es. L'Aquila, Albiano d'Ivrea) - Genera il file `comune_merged.sql` - Aggiunge le colonne `created_at`, `updated_at`, `nazione_id` - Rinumera gli ID dei comuni CH partendo da 110015 ### `merge_province.py` - Parsa i file `provincia.sql` di IT e CH - Gestisce correttamente gli apostrofi nei nomi delle province (es. Valle d'Aosta, Reggio nell'Emilia, L'Aquila) - Genera il file `provincia_merged.sql` - Rinumera gli ID delle province CH - Aggiorna i `provincia_id` nei comuni CH (ID >= 110015) ## Utilizzo 1. **Importare le province**: ```sql SOURCE provincia_merged.sql; ``` 2. **Importare i comuni**: ```sql SOURCE comune_merged.sql; ``` ## Note Importanti - Tutti i valori `created_at` e `updated_at` sono impostati a `NULL` - I codici catastali sono preservati dove presenti - Le relazioni tra comuni e province sono mantenute corrette - Gli ID sono univoci e non ci sono conflitti - Le province CH sono rinumerate correttamente da 112 a 137 - I comuni CH sono rinumerati da 110015 a 112150 - I file originali contengono multiple query INSERT che sono state tutte processate - Gli apostrofi nei nomi dei comuni sono gestiti correttamente (es. L'Aquila, Albiano d'Ivrea) - Gli apostrofi nei nomi delle province sono gestiti correttamente (es. Valle d'Aosta, Reggio nell'Emilia, L'Aquila) ## File Originali - `it/provincia.sql` - Province italiane originali - `it/comune.sql` - Comuni italiani originali (6 query INSERT) - `ch/provincia.sql` - Province svizzere originali - `ch/comune.sql` - Comuni svizzeri originali (4 query INSERT)