2009-07-09 48 views
5

Dữ liệu vị trí cơ bản trong cấu trúc cây. Vì vậy, khi bạn hỏi ai đó về địa chỉ của họ, bạn muốn biết Khu vực/Ngoại ô, Thành phố/Thị trấn, Tiểu bang/Tỉnh và Quốc gia nào họ sống.Cách tiếp cận tốt nhất để lưu trữ thông tin vị trí trong cơ sở dữ liệu là gì?

Dữ liệu này hy vọng sẽ chỉ được thiết lập một lần và cần sửa đổi rất ít . Hầu hết các trang web thương mại điện tử và rất nhiều người khác sẽ cần phải lưu trữ loại thông tin này nhưng tôi đang đấu tranh để tìm thấy nhiều về nó. Có lẽ bởi vì tôi không tìm kiếm đúng thời hạn nhưng tôi nghĩ rằng nó sẽ là một vấn đề phổ biến mà đã được giải quyết.

Điều này dẫn đến một câu hỏi khác. Tôi có thể đưa tay lên loại thông tin này như khu vực nào thuộc thành phố nào, thành phố nào thuộc bang nào và tiểu bang nào thuộc quốc gia nào? EDIT: Để làm cho mọi việc trở nên phức tạp hơn, tôi muốn có thể cung cấp một loại giải pháp chung vì ví dụ một số quốc gia không sử dụng mã zip, họ sử dụng mã bưu chính, nó giống như vậy nhưng không khá. Mong muốn lớn của tôi là có Vùng/Ngoại ô -> Thành phố/Thị trấn -> Vùng/Tỉnh/Bang -> Quốc gia. Tôi có thể đang cố gắng không thể.

EDIT2: Xin lỗi tôi có thể chưa đủ rõ ràng nhưng tôi không cần mã zip. Chỉ là vùng lân cận/khu vực NAME -> Thành phố ........

Trả lời

1

Nếu bạn muốn lấy thông tin về khóa kéo của Hoa Kỳ, hãy xem Tiger. Đó là thông tin từ cuộc điều tra dân số Hoa Kỳ và sẽ cung cấp cho bạn tất cả dữ liệu. Tuy nhiên, báo trước là thông tin không dễ trừu tượng, vì vậy sẽ mất một thời gian.

0

Điều này phức tạp hơn lần đầu tiên xuất hiện. Một số thị trấn có nhiều mã zip. Một số mã zip có nhiều thị trấn. Nhiều địa chỉ có thể sử dụng thị trấn chính hoặc tên của thành phố gần nhất. Việc xác thực địa chỉ không phải là nhỏ.

Nếu bạn muốn lưu trữ dữ liệu mã zip, có zip code databases bạn có thể mua. Nhưng có thể bạn sẽ thấy dễ dàng hơn để xác thực đối với USPS bằng cách sử dụng their tool.

0

Nếu bạn không quan tâm đến mã zip, có lẽ bạn có thể loại bỏ những gì bạn cần từ Wikipedia.

0

Đầu tiên, có hai điều khác biệt ở đây: thông tin địa lý và thông tin chính trị/tổ chức. Có thể có mã zip được chia sẻ, nhưng về mặt địa lý, bất kỳ đối tượng nào đều nằm hoàn toàn bên trong một đối tượng khác.

Khi chúng tôi phải giải quyết vấn đề, chúng tôi chỉ tạo cấu trúc cây chung chung, trong đó mỗi nút địa lý có tham chiếu đến từng phụ huynh. Các nút cấp cao nhất (các quốc gia trong trường hợp của chúng tôi) không có tham chiếu gốc. Hơn nữa, đối với các quốc gia khác nhau, chúng tôi có cấu trúc khác nhau. Yêu cầu duy nhất là nó phải được phân cấp.

Sau đó, chúng tôi có thể tăng tốc các truy vấn địa lý bằng cách precomputing thông tin traversal cây. Chúng tôi đi qua cây, thứ tự đi qua được tính toán và lưu trữ nó trong nút địa lý. Sau khi so sánh int đơn giản trong truy vấn là đủ để kiểm tra xem một trong những địa lý là bên trong khác và như vậy.

Đồng thời, lưu trữ những thứ như thông tin mã zip giống như cấu trúc dữ liệu song song ở đây, được lưu trữ trong bảng khác với tham chiếu đến các nút địa lý trong cấu trúc địa lý.

Các vấn đề liên quan