faretesto > comp.www.* > comp.www.php

^Bart (03.10.2019, 21:09)
Salve,

in Italia e, se non erro, in altri stati esteri esistono regioni e
province ora devo capire come memorizzarle al meglio in un db per poi
associarle alle città con le seguenti tabelle:

countries
-----------------------------------------------------
id_country name
1 Italy
2 Spain

regions
-----------------------------------------------------
id_region name district FK_id_country
1 Marche AN,AP,MC,FM,PU 1
2 Andalusia Siviglia,Cordoba,etc. 2

cities
-----------------------------------------------------
id_city FK_id_region name district
1 1 Fabriano AN
2 2 Siviglia Siviglia

Ovviamente ci sono anche nazioni che non hanno regioni o province in
quel caso prevederei un valore "NONE".

C'è sempre da migliorare quindi accetto tutti i consigli e tutte le
critiche! :)

Saluti!
^Bart
oibò (03.10.2019, 22:19)
> Saluti!
> ^Bart


sei marchigiano?
Alessandro Pellizzari (04.10.2019, 12:02)
On 03/10/2019 20:09, ^Bart wrote:

> in Italia e, se non erro, in altri stati esteri esistono regioni e
> province ora devo capire come memorizzarle al meglio in un db per poi
> associarle alle città con le seguenti tabelle:


Sì, ma i sistemi sono parecchio diversificati.

Per esempio, per l'UK hai Country (England, Scotland, ...), Region
(North-East, North-West, ...), County (Essex, Wessex, Devon, *shire,
....), District (che può essere city o borough) e, scendendo ancora, Parish.

Per il Giappone non mi metto nemmeno a elencare tutti i livelli :D

Semplificando a Country, Region, District, City come hai fatto tu, la
struttura è quasi perfetta, ma ti
conviene avere una tabella a parte per i district:

country:
- id
- name

region:
- id
- name
- country_id

district:
- id
- name
- region_id

city:
- id
- name
- district_id

> C'è sempre da migliorare quindi accetto tutti i consigli e tutte le
> critiche! :)


Se vuoi modellare tutti i casi possibili puoi usare una singola tabella
e joinarla con sè stessa:

area:
- id (auto increment)
- type (varchar)
- parent_area (nullable fk verso id)
- name

Questo rende relativamente semplice (tramite una catena di query) avere
tutta la gerarchia ufficiale.

Ma rende complicato fare query tipo "dammi tutte le città",
semplicemente perché alcuni Paesi potrebbero non avere il concetto di
città, o magari alcune c'è distinzione tra città e paese (pensa a "city"
e "town" in inglese), o tra città e metropoli (pensa a Milano, Londra,
Tokyo, ...)

I alternativa puoi inventarti un sistema e mettere "type" numerico,
assegnando un certo valore a ogni livello che tu consideri equivalente.
Per esempio 10 per lo Stato sovranazionale (UK, Italia, Francia), 20 per
le country in UK (England, Wales, ...) o per gli stati in USA (Texas,
California, ...), 30 per la regione (Marche, North-East, ...), ecc. ecc.

Questo ti lascerebbe un po' di buchi in mezzo per aggiungere cose a cui
non avevi pensato, e di avere la lista della "città" semplicemente
filtrando per type.

Penso che peggio della geografia ci sia solo il calendario, tra le cose
create dall'umanità. :P

Bye.
fmassei (04.10.2019, 18:06)
On Friday, October 4, 2019 at 6:02:26 AM UTC-4, Alessandro Pellizzari wrote:
> On 03/10/2019 20:09, ^Bart wrote:
> Sì, ma i sistemi sono parecchio diversificati.
> [...]
> Penso che peggio della geografia ci sia solo il calendario, tra le cose
> create dall'umanità. :P


Esiste uno standard internazionale, naturalmente:


Ciao!
^Bart (05.10.2019, 16:38)
> sei marchigiano?

Si! Come diceva un mio ex collega dell'Arma di Maddaloni ad esser
preciso sono Senegalese (aka senigalliese!) Lol! :D

Saluti.
^Bart
^Bart (06.10.2019, 20:14)
> Sì, ma i sistemi sono parecchio diversificati.

Purtroppo l'ho notato anch'io...

> Per esempio, per l'UK hai Country (England, Scotland, ...), Region
> (North-East, North-West, ...), County (Essex, Wessex, Devon, *shire,
> ...), District (che può essere city o borough) e, scendendo ancora, Parish.


Mhmm... quindi UK non è country? Io incasellerei UK in country poi
metterei in region England, Scotland, etc. in district o County o
District per finire a city...

> Per il Giappone non mi metto nemmeno a elencare tutti i livelli :D


Azz... :\

> Semplificando a Country, Region, District, City come hai fatto tu, la
> struttura è quasi perfetta, ma ti
> conviene avere una tabella a parte per i district:


L'ho poi fatta appena dopo aver postato la richiesta! :)

> Se vuoi modellare tutti i casi possibili puoi usare una singola tabella
> e joinarla con sè stessa:


Vorrei evitare tutto questo, mi piace tenere tutto "bello" diviso

> Ma rende complicato fare query tipo "dammi tutte le città",
> semplicemente perché alcuni Paesi potrebbero non avere il concetto di
> città, o magari alcune c'è distinzione tra città e paese (pensa a "city"
> e "town" in inglese), o tra città e metropoli (pensa a Milano, Londra,
> Tokyo, ...)


Diciamo che city e town le metterei tutte nella tabella cities però
quello che accade in UK è praticamente un'istantanea molto plausibile di
quello che accade per il mondo quindi forse dovrei aggiungere anche
county e borough perché già in Europa avrei problemi figuriamoci oltre... :\

> Penso che peggio della geografia ci sia solo il calendario, tra le cose
> create dall'umanità. :P


Eh già ma essendo il progetto rivolto all'inserimento di attività in
giro per il mondo devo trovare il modo migliore e che mi dia meno problemi!

> Bye.


Saluti!
^Bart
^Bart (06.10.2019, 21:32)
> Esiste uno standard internazionale, naturalmente:
>


Ok, ho visto la pagina, però... non ho ben capito come agire nella
divisione e nell'inserire ciò che davvero occorrerebbe... :\

> Ciao!


Saluti!
^Bart
Ammammata (07.10.2019, 09:32)
Il giorno Fri 04 Oct 2019 06:06:42p, ** ha inviato su it.comp. il
messaggio news:80e3d13e-663e-4bcd-81b3-308eab2d7d15.
Vediamo cosa ha scritto:

> Esiste uno standard internazionale, naturalmente:
>


UN/LOCODEs have five characters. The first two letters code a country by
the table defined in ISO 3166-1 alpha-2. The three remaining characters
code a location within that country. Letters are preferred, but if
necessary digits 2 through 9 may be used, excluding "0" and "1" to avoid
confusion with the letters "O" and "I" respectively.

For each country there can be a maximum of 17,576 entries using only
letters (26×26×26), or 39,304 entries using letters and digits (34×34×34).

For the US, the letter combinations have almost all been exhausted. So in
2006, the Secretariat added 646 entries with a digit as the last character.

§

certo che questi cervellONI potevano pensarci anche un po' prima alla
possibilità che paesONI con tante locaziONI avrebbero saturato le
combinaziONI possibili (20.000 scarse)

costava tanto partire subito con 4 (poco meno di mezzo milione, imho già
più che sufficienti) o 5 lettere (circa 12 milioni per nazione, fin troppe
guardando l'attuale situazione mondiale)?
Discussioni simili