2010-06-22 48 views
17

Tôi tự hỏi liệu có một số loại "chuẩn" để lưu trữ địa chỉ của Mỹ trong cơ sở dữ liệu không? Có vẻ như đây là một nhiệm vụ phổ biến, và cần có một loại tiêu chuẩn nào đó.Thực tiễn tốt nhất/Tiêu chuẩn để lưu trữ địa chỉ trong cơ sở dữ liệu SQL

Điều tôi đang tìm kiếm là sơ đồ cụ thể về cách các bảng cơ sở dữ liệu hoạt động và tương tác, đã ở dạng thông thường thứ ba, bao gồm các kiểu dữ liệu (MySQL). Một tài liệu UML tốt sẽ hoạt động.

Có lẽ tôi chỉ là lười biếng, nhưng đây là một nhiệm vụ rất phổ biến, và tôi chắc chắn ai đó đã xuất bản một cách hiệu quả để làm điều này ở đâu đó. Tôi chỉ không biết nơi để tìm và Google không giúp đỡ. Vui lòng chỉ cho tôi tài nguyên. Cảm ơn.

EDIT


Mặc dù đây là chi tiết của một câu hỏi chung, tôi muốn làm rõ nhu cầu cụ thể của tôi.

Địa chỉ sẽ được sử dụng để chỉ định địa chỉ đường của vị trí của sự kiện. Các địa chỉ này sẽ cần phải ở định dạng có thể được chia nhỏ và tìm kiếm tốt nhất và cũng được sử dụng bởi bất kỳ ứng dụng của bên thứ ba nào mà tôi có thể kết nối với nguồn dữ liệu của mình.

CSONG. Dữ liệu sẽ được mã hóa địa lý (dài, lat) trên mục nhập và được lưu trữ riêng biệt, vì vậy nó phải phù hợp với giao thức (chưa được quyết định) của bất kỳ bộ mã hóa/ứng dụng/thư viện nào thực hiện điều đó.

+1

Google/Android cung cấp ví dụ về cách họ thực hiện tại http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.StructuredPostal.html và nguồn tại dòng 3277 của http: // android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/provider/ContactsContract.java;h=a56bb4593ba23848954819885436c0f3bfb15505;hb=HEAD – Don

+0

Bố cục Android làm cho lỗi cổ điển bao gồm cả hộp thư và địa chỉ đường phố riêng biệt trong cùng một bản ghi nhưng chỉ cho phép một mã ZIP duy nhất. Các hộp thư bưu điện và địa chỉ đường phố hiếm khi chia sẻ cùng một ZIP. –

Trả lời

12

http://www.upu.int có tiêu chuẩn định dạng cho địa chỉ quốc tế. Ấn bản 28 tại http://usps.com có các tiêu chuẩn định dạng của Hoa Kỳ. Phần mềm CASS như http://semaphorecorp.com xác thực và chuẩn hóa địa chỉ của Hoa Kỳ.

Các USPS muốn các thành phần địa chỉ unpunctuated sau nối trên một dòng duy nhất:

* house number 
* predirectional (N, SE, etc) 
* street 
* suffix (AVE, BLVD, etc) 
* postdirectional (SW, E, etc) 
* unit (APT, STE, etc) 
* apartment/suite number 

Ví dụ, 102 N MAIN ST SE APT B.

Nếu bạn giữ cho toàn bộ dòng địa chỉ như một trường duy nhất trong cơ sở dữ liệu của bạn, đầu vào và chỉnh sửa dễ dàng, nhưng tìm kiếm có thể khó khăn hơn (ví dụ, trong trường hợp SOUTH EAST LANE là đường phố EAST như trong S EAST LN hoặc là LANE như trong SE LANE ST?).

Nếu bạn giữ địa chỉ được phân tích thành các trường riêng biệt, tìm kiếm các thành phần như tên phố hoặc căn hộ trở nên dễ dàng hơn, nhưng bạn phải nối mọi thứ lại với nhau để xuất, bạn cần phần mềm CASS để phân tích cú pháp chính xác và hộp thư bưu điện và địa chỉ APO/FPO có phân tích cú pháp đặc biệt.

Vị trí thực tế có nhiều địa chỉ tại vị trí đó là tòa nhà đa nhân, trong đó có chữ cái/số sau các đơn vị như APT và STE chỉ định địa chỉ hoặc đó là Cơ quan nhận thư thương mại (ví dụ: cửa hàng UPS) và maildrop/số hộp thư cá nhân được nối thêm (như 100 MAIN ST STE B PMB 102), hoặc là một doanh nghiệp có một điểm giao hàng và thư của USPS được định tuyến sau khi phân phối USPS (thường yêu cầu một trường gửi thư riêng biệt mà công ty có thể cần nhưng USPS sẽ không muốn trên dòng địa chỉ).

Địa chỉ liên hệ có nhiều địa chỉ thực thường là doanh nghiệp hoặc người có địa chỉ đường phố và hộp thư bưu điện. Lưu ý rằng mỗi địa chỉ thường có một mã ZIP khác nhau.

Khá điển hình là một giao dịch kinh doanh có thể có địa chỉ giao hàng và địa chỉ thanh toán (một lần nữa, với các mã ZIP khác nhau). Thông tin mà tôi giữ cho mỗi địa chỉ là:

* name prefix (DR, MS, etc) 
* first name and initial 
* last name 
* name suffix (III, PHD, etc) 
* mail stop 
* company name 
* address (one line only per Pub 28 for USA) 
* city 
* state/province 
* ZIP/postal code 
* country 

tôi thường mail In dừng ở đâu đó giữa tên của người đó và công ty bởi vì đất nước có chứa các tiểu bang/bưu điện, trong đó có thành phố, trong đó có địa chỉ, trong đó có công ty, trong đó có ngăn chặn thư chứa người đó. Tôi sử dụng phần mềm CASS để xác thực và chuẩn hóa địa chỉ khi được nhập hoặc chỉnh sửa.

1

Tôi đã xem xét điều này một thời gian trước đây, nhưng đối với địa chỉ quốc tế. Tôi đã không tìm thấy nhiều trong cách của một sự đồng thuận. Tuy nhiên, đối với Mỹ, tôi thấy một cách ngắn gọn tên Hoa Kỳ Đường lưu, Landmark, và bưu chính Địa chỉ Tiêu chuẩn dữ liệu (Dự thảo):

http://www.fgdc.gov/standards/projects/FGDC-standards-projects/street-address/index_html

Tôi không nghĩ rằng họ thực sự cung cấp bất kỳ sơ đồ cơ sở dữ liệu cụ thể ý tưởng, nhưng nó có thể là một điểm khởi đầu tốt.

2

Verysimilarquestionshave đã được hỏi trước đó.

Địa chỉ là lộn xộn - tốt nhất.

Nó phụ thuộc một phần vào những gì bạn muốn làm với địa chỉ. Nếu bạn định sử dụng chúng để gửi thư cho mọi người, thì bạn chỉ cần ghi lại hình ảnh sẽ xuất hiện trên nhãn địa chỉ ở dạng thuận tiện. Nếu bạn định phân tích địa chỉ, bạn phải làm việc chăm chỉ hơn nhiều.

Hãy nhớ rằng lần đầu tiên bạn phải đối phó với một người nào đó bên ngoài Hoa Kỳ, tất cả các quy tắc trước đó đều bị lạc lối. Bạn có thể hoàn toàn là người Mỹ, nhưng hãy cẩn thận.

1

Đầu tiên, phương tiện lưu trữ địa chỉ "tốt nhất" phụ thuộc rất lớn vào cách sử dụng địa chỉ. Nó chỉ là để tham khảo hoặc tìm kiếm trên thành phố nói? Bạn có kế hoạch giải quyết phong bì? Bạn sẽ tích hợp với một hệ thống vận chuyển như FedEx hay UPS? Bạn có lưu trữ địa chỉ không phải của Hoa Kỳ không? Một khi bạn nhận được vào lĩnh vực tích hợp với một cái gì đó mà tàu, bạn nên bắt đầu nhìn vào CASS. Đây là một đặc tả để xử lý các địa chỉ USPS. Có những ứng dụng ngoài đó được chứng nhận CASS để lưu trữ và xác minh địa chỉ. Vì vậy, thực hành tốt nhất thứ hai sẽ là cố gắng tránh tái phát minh ra bánh xe và xem liệu có một hệ thống nào ở đó sẽ giải quyết vấn đề của bạn đặc biệt là nếu bạn định đi quốc tế.Bạn muốn tận dụng thực tế là ai đó đã làm việc ra tất cả các chi tiết về cách lưu trữ địa chỉ đúng cách và hiệu quả cho nhiều quốc gia trên thế giới thay vì phải tự mình thực hiện điều tra đó.

1

Tôi phải cố gắng làm điều này trước và tôi đã tìm thấy this document cung cấp cho bạn một số gợi ý. Tôi đã kết thúc việc xếp giản đồ của mình vì ứng dụng của tôi không phải xử lý các địa chỉ quốc tế.

3

Đầu tiên, với tư cách là người dành hầu hết ngày làm việc chuyên nghiệp với địa chỉ, họ khó quản lý từ góc độ dữ liệu.

Nếu bạn hỏi 5 người họ sống ở địa chỉ nào; bạn sẽ thấy rằng bạn nhận được 5 câu trả lời khác nhau. Trong khi bạn và tôi có thể nói rằng 123 Main Street Apt 1Apt 1 123 Main Street là cùng một địa chỉ, chương trình cơ sở dữ liệu sẽ có một thách thức.

Nếu bạn đang sử dụng các địa chỉ trung tâm của Hoa Kỳ, phần mềm được chứng nhận CASS từ hầu hết mọi nhà cung cấp sẽ chuẩn hóa địa chỉ của bạn một cách hợp lý. Tôi muốn giới thiệu một định dạng đơn giản như sau:

  • Địa chỉ 1
  • Địa chỉ 2
  • Địa chỉ 3
  • Thành phố
  • Nhà nước
  • Zip
  • Zip + 4 (Tôi sẽ mang này để tra cứu dễ dàng hơn khi kiểm tra các bản sao)

Tuy nhiên, nếu bạn muốn có một địa chỉ phổ quát, tôi sẽ xem xét tiêu chuẩn ADIS từ IdeaAlliance. Tiêu chuẩn này có thể được sử dụng để phân tích (phân tích cú pháp) địa chỉ từ hầu hết các quốc gia thành các phần liên quan. Sau đó, chúng có thể được đặt lại với nhau bằng cách sử dụng các mẫu/thành phần dựa trên các tiêu chuẩn của Liên minh Bưu chính Phổ thông (Tiêu chuẩn UPU S42 về Thành phần Địa chỉ Bưu điện Quốc tế và Mẫu).

Điểm cộng lớn của định dạng này là địa chỉ không tồn tại trong cơ sở dữ liệu bưu chính như CASS có thể được nhập và lưu trữ dưới dạng các phần riêng biệt.

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