Tengo una lista de registros en mi base de datos y cada registro está asociado con un código postal.¿Cuál es la mejor manera de consultar una base de datos para registros dentro de n millas de un código postal?
¿Cuál es la "mejor práctica" para consultar todos los registros en mi base de datos para encontrar todas las entradas que están dentro de n millas de otro código postal?
Cada código postal tiene una latitud/longitud asociada a él en la base de datos, así que sé que tendré que usar eso. Sin embargo, no puedo imaginarme ejecutar ningún tipo de fórmula de distancia en cada par de códigos postales, convirtiendo a millas y rechazando aquellas que no están dentro de mi radio.
Parece tremendamente costoso desde el punto de vista informático para una consulta tan común.
También he considerado hacer un cálculo previo de todos los pares, pero parece demasiado grande como para considerarlo también. Hay aproximadamente ~ 40,000 códigos postales en los EE. UU. Entonces, una base de datos de todos los pares de cada código postal sería (40,000)^2, o 1,6 billones de entradas.
Sé que este es un problema común en los sitios web, así que con suerte alguien me puede orientar en la dirección correcta de la mejor manera. Estoy usando SQL Server 2008 y si hay soluciones prefabricadas, entonces genial, porque realmente no quiero volver a inventar la rueda en esta instancia.
pregunta relacionada: Getting all zip codes within radius (esto no me ayuda)
Además, sé de este proyecto SourceForge pero es abandonado y ya no está en uso.
dang: ¡pásame! –