matteocontrini / comuni-json

🇮🇹 Database JSON comuni italiani (2020) con informazioni ISTAT + CAP
Other
499 stars 63 forks source link

[Consiglio] Cosa usare come chiave primaria per i comuni? #42

Open inaitana opened 4 years ago

inaitana commented 4 years ago

Ciao, chiedo scusa se uso questo spazio per un consiglio ma penso potrebbe essere di interesse comune per i vostri utenti.

In un progetto che ho avviato recentemente uso come chiave per la tabella comuni, e foreign key nella tabella persone, il codice ISTAT. Ho purtroppo scoperto solo oggi che questo può cambiare.

Dalla vostra esperienza, vi sembra intelligente usare il codice catastale (o meglio nazionale) come chiave primaria? Questo sia per tracciare i comuni (un eventuale duplicato non sarebbe una tragedia), ma soprattutto per evitare di perdere le foreign key relazionate al cambiare dei comuni?

Non ho trovato nessuna garanzia sul fatto che questo codice non cambi, ma non credo ci sia stato mai nessun caso in cui è cambiato.

giovanni-orciuolo commented 4 years ago

In generale la regola d'oro è non usare come chiave primaria dati sconosciuti che vengono importati dall'esterno. Questi potrebbero essere sporchi, duplicati, eccetera, causando non pochi problemi. Non sono un grande esperto in quanto preferisco usare soluzioni NoSQL, ma questo è il mio consiglio

My 2 cents

inaitana commented 4 years ago

Sicuramente ho sbagliato a pensare di potermi fidare del codice ISTAT e usarlo come foreign key, ma in ogni caso una convenzione su una chiave è necessaria per identificare i comuni modificati. Usando un mio id il problema dei comuni sporchi o duplicati l'avrei io, e questo è indipendente dal modello di database.

La vera domanda è se il codice "catastale" può essere ritenuto un identificatore affidabile per tracciare il comune, a differenza del codice ISTAT.

gciandro13 commented 3 years ago

Ciao @inaitana , arrivo dopo qualche mese ma mi pareva giusto commentare dato che ho affrontato lo stesso problema.

Sto utlizzando il db per alcune integrazioni --> Non so se avevi trovato di meglio, ma stando a https://it.wikipedia.org/wiki/Codice_catastale il codice Catastale sembra essere davvero l'unico identificativo "univoco" di un comune, e come hai detto tu non ho trovato episodi storici di "cambio di codice catastale"; mentre tutto il resto può essere soggetto a cambi.

Credo che i siti istituzionali si siano fatti la stessa domanda, optando per questa tipologia di codice.