У меня есть список записей в моей базе данных, и каждая запись связана с почтовым индексом.
Какова "наилучшая практика" для запроса всех записей в моей базе данных, чтобы найти все записи, которые находятся в пределах n миль от другого почтового индекса?
С каждым почтовым индексом в базе данных связан лат / лонг, поэтому я знаю, что мне придется это использовать. Тем не менее, я не могу себе представить какую-либо формулу расстояния для каждой пары почтовых индексов, конвертирование в мили и отклонение тех, которые находятся за пределами моего радиуса.
Это кажется ужасно дорогим в вычислительном отношении для такого распространенного запроса.
Я также подумал о том, чтобы выполнить предварительное вычисление для всех пар, но оно кажется слишком большим для рассмотрения. В США приблизительно 40 000 почтовых индексов. Таким образом, база данных всех пар каждого почтового индекса будет (40000) ^ 2 или 1,6 миллиарда записей.
Я знаю, что это распространенная проблема на веб-сайтах, так что, надеюсь, кто-то может указать мне правильное направление для наилучшего пути. Я использую SQL Server 2008 , и если есть готовые решения, то это здорово, потому что я действительно не хочу заново изобретать колесо в этом случае.
Смежный вопрос: Получение всех почтовых индексов в радиусе (это мне не помогло)
Кроме того, я знаю об этом SourceForge проекте, но он заброшен и больше не используется.