po pierwsze struktura dobrze wygląda pod względem normalizacji. Możesz przeczytać więcej na ten temat, po prostu wyszukując „reguły normalizacji bazy danych”. Należy jednak zdawać sobie sprawę z faktu, że otrzymasz złożone zapytania, oddzielając każdą właściwość (tabela-ulica, tabela-numeru ulicy itp.). Aby uzyskać wynik taki jak „POI XY, Streetname 2, Somecity, lat=42,4, long=13,2”, musiałbyś dołączyć do co najmniej czterech stołów. Jeśli wydajność nie stanowi problemu, śmiało;-)
Możesz pobrać dane (jeśli są dostępne) z openstreemap.org lub niektórych punktów POi z geonames.org
Pozdrawiam, Marcin