Re: Best practices for geo-spatial city name searches?

Поиск
Список
Период
Сортировка
От Fernando Hevia
Тема Re: Best practices for geo-spatial city name searches?
Дата
Msg-id 175E5B6233FD4244B9A52AB1D19BF120@iptel.com.ar
обсуждение исходный текст
Ответ на Best practices for geo-spatial city name searches?  (Mark Stosberg <mark@summersault.com>)
Список pgsql-sql
 

> -----Mensaje original-----
> From: Mark Stosberg
> 
> Hello, 
> 
> I use PostgreSQL and the "cube" type to perform geo-spatial 
> zipcode proximity searches. I'm wondering about the best 
> practices also supporting a geo-spatial distance search based 
> on a city name rather than zipcode.
> 
> In our original data model, we used a 'zipcodes' table, with 
> the zipcode as the primary key.  This can of course contain a 
> "City Name" column, but there is a problem with this, 
> illustrated a "Nome, Alaska" case. Nome's zipcode is 99762.
> It maps to multiple cities including Diomede, Alaska and Nome, Alaska.
> 
> In the data model described, only the "Diomede" row is 
> imported, and the other rows, including the "Nome, Alaska" 
> row are dropped. So if you try to search for Nome, Alaska, 
> you won't find anything.
> 
> One solution would be to have a "cities" table, with the 
> city/state as the primary key, and a zipcode as an additional 
> column. Then, by joining on the zipcodes table, the 
> coordinates for a city could be found.
> 
> Is there any other way I should be considering data modelling 
> to support searches on zipcodes and cities? 
> 

You absolutely need zipcode as a primary key? If you must enforce non
duplicate entries use country + state + county + city_name instead. You
might still need to throw zipcode into the PK for certain cities
(worldwide). 
Otherwise, latitud & longitude provide a better natural key, or simply use a
non data related sequential bigint.

Regards.



В списке pgsql-sql по дате отправления:

Предыдущее
От: johnf
Дата:
Сообщение: Re: Best practices for geo-spatial city name searches?
Следующее
От: John Zhang
Дата:
Сообщение: Add column by using SELECT statement