Tôi có một danh sách các bản ghi trong cơ sở dữ liệu của tôi và mỗi bản ghi được liên kết với một mã zip.cách tốt nhất để truy vấn cơ sở dữ liệu cho các hồ sơ trong vòng n dặm của một mã zip là gì?
các "thực hành tốt nhất" để truy vấn tất cả các bản ghi trong cơ sở dữ liệu của tôi để tìm tất cả các mục có trong n dặm của một mã zip là gì?
Mỗi mã zip có một lat/long liên kết với nó trong cơ sở dữ liệu vì vậy tôi biết tôi sẽ phải sử dụng nó. Tuy nhiên, tôi không thể tưởng tượng chạy bất kỳ loại công thức khoảng cách trên mỗi cặp mã zip, chuyển sang dặm và từ chối những người không nằm trong bán kính của tôi.
Điều đó có vẻ tốn kém về mặt tính toán đối với một truy vấn phổ biến như vậy.
Tôi cũng đã cân nhắc thực hiện tính toán trước tất cả các cặp nhưng có vẻ quá lớn để xem xét. Có khoảng ~ 40.000 mã zip ở Hoa Kỳ. Vì vậy, một cơ sở dữ liệu tất cả các cặp của mỗi mã zip sẽ là (40.000)^2, hoặc 1,6 tỷ mục.
Tôi biết đây là vấn đề phổ biến trên các trang web để hy vọng ai đó có thể chỉ cho tôi đúng hướng cho cách tốt nhất. Tôi đang sử dụng SQL Server 2008 và nếu có giải pháp được tạo trước đó thì tuyệt vời, bởi vì tôi thực sự không muốn phát minh lại bánh xe trong trường hợp này.
Câu hỏi liên quan: Getting all zip codes within radius (điều này không giúp tôi)
Ngoài ra, tôi biết về dự án SourceForge này nhưng nó là vô chủ và không còn sử dụng.
dang: đánh bại tôi vào nó! –