Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [MySQL] Normalizzazione db regioni / province / comuni

    Considerando una Soluzione N°1, con un database di 3 tabelle:

    regioni
    id
    nome

    province
    id
    nome
    id_regione

    comuni
    id
    nome
    id_regione
    id_provincia


    E una Soluzione N°2, con un database di 4 tabelle:

    regioni
    id
    nome

    province
    id
    nome

    comuni
    id
    nome

    associazioni
    id
    id_regione
    id_provincia
    id_comune


    Qual è la migliore secondo voi esperti?

    Grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    Sono entrambe orribili (ed anche sbagliate).
    Considera che è una gerarchia pura e che
    Comune => Provincia => Regione

  3. #3
    Allora come si gestisce una gerarchia?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Cosa devi gestire in particolare?

    Sennò invece di basarti sull'id potresti basarti sul nome, esempio


    associazioni
    id
    nome_regione
    nome_provincia
    nome_comune


    e basarti su essi, invece di tante tabelle inutili

  5. #5
    Grazie per la risposta in parole povere sto cercando il modo migliore di riportare in MySQL una struttura ad albero come quella di Regioni -> Province -> Comuni.
    So che ci sono molti modi per farlo, ma vorrei capire quale struttura è più conveniente nel mio caso.

    In particolare al momento dovrei gestire solo un db Comuni -> Frazioni, le soluzioni sono tante ma sarebbe utile se la struttura fosse scalabile (per esempio vorrei avere la possibilità di poter aggiungere tranquillamente le Province, in futuro).

    codice:
    ID   Nome_Regione   Nome_Provincia   Nome_Comune
    1    LOMBARDIA      Milano           Milano
    2    LOMBARDIA      Milano           Sesto San Giovanni
    3    LOMBARDIA      Milano           Legnano
    4    LOMBARDIA      Bergamo          Bergamo
    5    LOMBARDIA      Bergamo          Treviglio
    6    LOMBARDIA      Bergamo          Seriate
    7    UMBRIA         Perugia          Perugia
    8    UMBRIA         Perugia          Panicale
    9    UMBRIA         Terni            Terni
    ...
    Secondo voi può andar bene uno schema relazionale così? Tutto su una sola tabella?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da Simo990
    Grazie per la risposta in parole povere sto cercando il modo migliore di riportare in MySQL una struttura ad albero come quella di Regioni -> Province -> Comuni.
    So che ci sono molti modi per farlo, ma vorrei capire quale struttura è più conveniente nel mio caso.

    In particolare al momento dovrei gestire solo un db Comuni -> Frazioni, le soluzioni sono tante ma sarebbe utile se la struttura fosse scalabile (per esempio vorrei avere la possibilità di poter aggiungere tranquillamente le Province, in futuro).

    codice:
    ID   Nome_Regione   Nome_Provincia   Nome_Comune
    1    LOMBARDIA      Milano           Milano
    2    LOMBARDIA      Milano           Sesto San Giovanni
    3    LOMBARDIA      Milano           Legnano
    4    LOMBARDIA      Bergamo          Bergamo
    5    LOMBARDIA      Bergamo          Treviglio
    6    LOMBARDIA      Bergamo          Seriate
    7    UMBRIA         Perugia          Perugia
    8    UMBRIA         Perugia          Panicale
    9    UMBRIA         Terni            Terni
    ...
    Secondo voi può andar bene uno schema relazionale così? Tutto su una sola tabella?
    Dipende ancora una volta da cosa devi fare in pratica, la soluzione che ti ho proposto
    è buona se devi fare delle liste di associazioni ad esempio e basarti direttamente
    sul nome della provina/citta/comune è meglio, l'esempio che hai immesso ora
    per una eccellente lista di comuni puo andare bene secondo me

  7. #7
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da Simo990
    in parole povere sto cercando il modo migliore di riportare in MySQL una struttura ad albero come quella di Regioni -> Province -> Comuni.
    So che ci sono molti modi per farlo, ma vorrei capire quale struttura è più conveniente nel mio caso.

    In particolare al momento dovrei gestire solo un db Comuni -> Frazioni, le soluzioni sono tante ma sarebbe utile se la struttura fosse scalabile (per esempio vorrei avere la possibilità di poter aggiungere tranquillamente le Province, in futuro).

    codice:
    ID   Nome_Regione   Nome_Provincia   Nome_Comune
    1    LOMBARDIA      Milano           Milano
    2    LOMBARDIA      Milano           Sesto San Giovanni
    3    LOMBARDIA      Milano           Legnano
    4    LOMBARDIA      Bergamo          Bergamo
    5    LOMBARDIA      Bergamo          Treviglio
    6    LOMBARDIA      Bergamo          Seriate
    7    UMBRIA         Perugia          Perugia
    8    UMBRIA         Perugia          Panicale
    9    UMBRIA         Terni            Terni
    ...
    Secondo voi può andar bene uno schema relazionale così? Tutto su una sola tabella?
    Non ci sono molti modi per farlo, c'è solo il modo giusto
    Devi rilassarti un paio di ore e mettere su carta lo schema
    della "realta" che deve rappresentare il DB


    Quello che proponi non va bene, Anzi è sbagliato
    in quel modo potresti scrivere anche
    codice:
    ID   Nome_Regione   Nome_Provincia   Nome_Comune
    1    LOMBARDIA      Milano           Milano
    2    LOMBARDIA      Milano           Sesto San Giovanni
    3    LOMBARDIA      Milano           Torre Annunziata
    ....
    8    UMBRIA         Perugia          Torre Annunziata
    9    UMBRIA         Terni            Terni
    ...
    e in questo caso l'errore non è che non hai studiato geografia
    ma sta nel fatto che puoi associare il comune di Torre Annunziata
    contemporaneamente a 2 regioni diverse
    ( che siano giuste o sbagliate ).

    __________________________________________________ __________



    A parer mio devi fare cosi: ( e riprendo il tuo primo post )
    ______ regioni
    __ id
    __ nome

    ______ province
    __ id
    __ nome
    __ id_regione

    ______ comuni
    __ id
    __ nome
    __ id_regione <----- L'errore è qui devi eliminare questo campo
    __ id_provincia

    __________________________________________________ _______


    Poi che tu preferisca lavorare con gli id o direttamente con i nomi
    è solamente una scelta ( io preferisco gli id )



  8. #8
    Effettivamente tra tutte mi sembra la soluzione migliore! Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.