"People near me" query

David Garamond <lists@zara.6.isreserved.com>

From: David Garamond <lists@zara.6.isreserved.com>
To: pgsql-general <pgsql-general@postgresql.org>
Date: 2004-03-19T10:05:11Z
Lists: pgsql-general
Imagine an Orkut-like site. Suppose we have 'person' table of 100k 
people. About 75% of these people fill in their location 
(City/State/Country) information. We also have a 'city' table containing 
list of cities with their state & country and each city's 
latitude/longitude. Assume all people's location is registered in the 
'city' table.

How does one design a database to be able to process "Show me people 
that live no farther than 250 miles from where I live" quickly? I can do 
"Show me people that live within (A-X to A+X) latitude and (B-X to B+X) 
longitude" though. (Where A and B is the latitude and longitude [of the 
person], and X is some numeric value.

-- 
dave