Лучший способ разделить сайт на города / страны? - PullRequest
0 голосов
/ 20 марта 2011

У меня есть сайт знакомств, или, лучше сказать, попробуйте. Я хочу быть таким же родовым
насколько это возможно с точки зрения охвата стран.

Поскольку это сайт, ориентированный на местные знакомства, я должен отслеживать города
и так далее, поэтому я сталкиваюсь с несколькими проблемами:

  1. Мне нужна информация о городах, люди могут присоединиться с
    (страна, о которой я ничего не знаю, я действительно не могу определиться с городом
    или что-нибудь)

  2. Когда люди объединяются из разных стран, они хотели бы видеть людей
    рядом, поблизости. Как бы вы подошли к такому типу проблемы?

Это может показаться 2 легкими моментами, но они действительно доставляют мне некоторые неприятности. дней. ** Попробуйте подойти к ним как к вопросам, связанным с базой данных **

Я обошел SE и считаю, что это лучший вопрос, а не какой-либо другой Сайт SE.

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Полное название города в США: {country_name, state_name, city_name}.Я говорю, что при условии, что в глобальном масштабе то, что я называю state_name, не является уникальным.Я легко могу представить, что какой-то регион латиноамериканской страны называют «Невада» или «Колорадо».

У вас также есть проблема правописания.Американка, живущая в Германии, может сказать, что она жила в Кельне, Северный Рейн-Вестфалия, Германия.Проживающий там немец назвал бы его «Кельн».

«Рядом» - еще более крепкий орешек.Я жил в большом городе.Это не было необычным, чтобы ехать час по шоссе между штатами, чтобы забрать мое свидание.Я думал об этом как "рядом".Сейчас я живу в маленьком городе.Сейчас 30 минут - это долгий путь, но это, вероятно, всего 15 или 20 миль вместо 65 или 70.

Если вы живете в приграничном городе, 15 миль могут быть в другой стране.Возможно, две разные страны.

Я думаю, что вам лучше всего использовать API геолокации или сервис, чтобы получить широту и долготу новых городов, когда они будут вставлены.Вычисление расстояния по двум точкам является простым, но оно приводит к плохо выполняемым запросам, если вы не используете ограничивающий прямоугольник.(Вы не хотите рассчитывать расстояние до каждого города в Техасе, чтобы найти людей «возле» Вако.)

1 голос
/ 01 июня 2011

Получите широту / долготу для всех городов.Не беспокойтесь о точных расстояниях.

Играйте с Excel и найдите максимальное изменение широты и / или долготы (Δlat или Δlong) для заданных расстояний (10 миль, 25 миль, 50 миль), а затем при поиске других просто выполните поиск в базе данных.внутри (Firstuser'sLongitude +/- Δlong) и внутри (Firstuser'sLongitude +/- Δlong).

Я не думаю, что люди будут против разницы между 10 милями и 10 * 2 ^ 0.5 милями.

...