program tip

전 세계 모든 주소에 공통 주소 데이터베이스 디자인이 있습니까?

radiobox 2020. 7. 25. 10:46
반응형

전 세계 모든 주소에 공통 주소 데이터베이스 디자인이 있습니까?


나는 프로그래머이며 정직하게 세계의 거리 구조를 모른다. 단지 우리 나라의 구조는 다음과 같다. 단지 하나 개의 ID 식별되는 세계의 모든 거리 주소를 저장하는 빠른 쿼리 및 동적으로 사용하는 간단해야합니다
덕분에 많은


표준 필드 집합으로 여러 국가의 주소를 나타낼 수 있습니다. 이름이 있거나 번호가 매겨진 건물이 위치한 이름이 지정된 액세스 경로 (철도)의 기본 개념은 중국을 제외하고는 상당히 표준입니다. 다른 거의 보편적 인 개념은 다음을 포함한다 : 일반적으로 지역으로 지칭 될 수있는 정착 (도시 / 도시 / 마을)의 명칭; 지역 이름을 지정하고 영숫자 우편 번호를 할당합니다. 우편 번호라고도하는 우편 번호는 일부 국가에서만 숫자로 표시됩니다. 당신이 정말로 일반적이기를 원한다면 많은 필드가 필요할 것입니다.

UPU Universal Postal Union은 많은 국가의 주소 데이터를 표준 형식 으로 제공합니다 . UPU 형식은 한 국가의 모든 주소 (사용 가능한 필드 정밀도까지)를 보유하므로 관계형입니다. 가능한 모든 주소 중 일부만 저장되는 고객 주소를 저장하는 경우 모든 필드와 행당 하나의 주소를 포함하는 단일 테이블 (또는 플랫 형식)을 사용하는 것이 좋습니다.

주소를 저장하기위한 적절한 형식은 다음과 같습니다.

  • 주소 라인 1-4
  • 소재지
  • 부위
  • 우편 번호 (또는 우편 번호)
  • 국가

주소 라인 1-4는 다음과 같은 구성 요소를 보유 할 수 있습니다.

  • 건물
  • 서브 빌딩
  • 전제 번호 (집 번호)
  • 전제 범위
  • 도로
  • 하위 통행료
  • 이중 의존성
  • 하위 지역

종종 3 개의 주소 라인 만 사용되지만 이것은 종종 불충분합니다. 공식 형식으로 모든 주소를 나타 내기 위해 더 많은 행을 요구할 수도 있지만 쉼표는 항상 행 구분 기호로 사용할 수 있으므로 정보를 여전히 캡처 할 수 있습니다.

일반적으로 데이터 분석은 지역, 지역, 우편 번호 및 국가별로 수행되며 이러한 요소는 사용자가 데이터를 입력 할 때 이해하기가 쉽습니다. 이러한 요소가 별도의 필드로 저장되어야하는 이유입니다. 그러나 사용자가 우편 번호 나 지역을 제공하도록 강요하지 마십시오. 로컬로 사용되지 않을 수 있습니다.

지역, 특히지도 지역과 우편 지역 간의 구분이 명확하지 않을 수 있습니다. 우편 지역은 때때로 가까운 대도시 일 수있는 우편 당국에 의해 간주되는 곳입니다. 그러나 우편 번호는 일반적으로 공식 우편 지역을 사용하지 않더라도 정확한 배송을 위해 문제 나 불일치를 해결합니다.


데이터베이스 답변을 살펴보십시오 . 특히 많은 경우에 적용됩니다.

(모든 가변 길이 문자 데이터 유형)

AddressId
Line1
Line2
Line3
City
ZipOrPostcode
StateProvinceCounty
CountryId
OtherAddressDetails

enter image description here


이 데이터를 저장 하는 주요 목적무엇인지 스스로에게 물어보십시오 . 실제로 주소에있는 사람에게 메일을 보내시겠습니까? 인구 통계, 인구를 추적 하시겠습니까? 기본 인증 / 확인의 일부로 발신자에게 정확한 주소를 요청할 수 있습니까? 무엇보다도? 위의 어느 것도?

Depending on your actual need, you will determine either a) it doesn't really matter, and you can go for a free-text approach, or b) structured/specific fields for all countries, or c) country specific architecture.


Sometimes the closest you can get to a street address is the city.

I once had a project to put all the Secondary Schools in India in Google Maps. I wrote a spiffy program using the Google API and thought it would be quite easy.

Then I got the data from the client. Some school addresses were things like "Across from the market, next to the barber" or "Near old bus stand".

It made my task much harder since, unfortunately, the Google API does not support that format.


For international addresses, it is remarkably hard to find a way to format the information if it is broken down into fields. As a for instance, an Italian address uses:

<street address>
<zip> <town> <region>
<country>

Such as

Via Eroi della Repubblica
89861 Tropea VV
Italy

That is rather different from the order for US addresses - on the second line.

See also the SO questions:

Also check out tag 'postal-code'.


Edit: Reverse order of region and town - per UPU


Maybe this is useful: https://gist.github.com/259744 For a project I collected a table of informations about all countries of the world, including ISO codes, top level domain, phone code, car sign, length and regex of zip. Country names and comments unfortunately only in German...


Depends on how free-form you are prepared to go with the fields. One free-form address field will obviously always do, but be of relatively little help narrowing down geography.

The problem you'll have is that there is too much variation in the level of geographical hierarchy across countries. Heck, some countries do not even have 'street addresses' everywhere.

I recommend you don't try to make it too clever.


Differently of other answers here, I believe it's possible to have an structured address database.

Just out of the hat, I can think of the following structure:

  • Country
  • Region (State / Province)
  • Locality (City / Municipality)
  • Sub-Locality (County / other sub-division of a locality)
  • Street

But how to query it fast enough?

One way I always think it can be accomplished is to ask for the ZIP Code (or Postal Code) which varies from country to country, but is solid within the country.

This way you can structure your data around the information provided by the postal offices around the world.


Len Silverston of Universal Data Model fame recommends a separate hierarchy of GEOGRAPHIC BOUNDARIES and depending on how much free-formed-ness you're willing to accept either simple STREET ADDRESS LINEs or per-country derivatives.


No, absolutely not. If you compare the way US and Japanese addresses work, you'll see that it's not possible.

UPDATE:

On second thought, anything can be done, but there's a trade-off.

One approach is to model the problem with address and address_attribute tables, with a 1:m relationship between them, anything can be modeled. The address_attribute table would have a pk, a name, a value, and an fk that points back to its address parent's pk. It's almost like using a Map with name, value pairs.

The trade-off is having to do a JOIN every time you want an address. You also have to interrogate the names of the address_attributes to figure out what you're dealing with each time.

Another approach would be to do more comprehensive research on how addresses are modeled around the world. In an object-oriented world you might have the western Address class (street1/street2/city/state/zip) and others for Japan, China, as many as needed to tile the address space. Then you'd have a master Address table and child tables to the other types with a 1:1 relationship between them.

How does Amazon or eBay do it? They ship internationally. Do they have locale-specific UI features? I've only used the US locale.


No, there are no standard addressing scheme. It usually varies from country-to-country. Even the Universal Postal Union said on Adressing the world, an address for everyone that there is none. The best solution for this is to use the 2/3-letter country code standards known as ISO 3166 and treat everything else by country's standards.

However, if you really are desperate to use easily accessible tools for your project, you can try Google Place API.


Your design should strongly depend from your purpose. Some people have posted how to structure data. So if you simply want to send s-mail to someone, it will do. Things begin to complicate if you want to use this data for navigation. Car navigation will require additional structures to contain traffic info (eg one-way roads), while foot navigation will require a lot of additional data. Here is small example: in my city, my neighborhood is near the park. Next to the park is former airfield (in fact, one of the oldest in Europe) turned into aviation museum. Next to aviation museum is a business park. Street number for museum is 39, while business park numbers start with 39A. So it may seem that 39 and 39A are close – but it takes about a mile to walk from one to another (and even longer if going by car) .
This is just a small example taken from my city, I think you can probably find a lot of exceptions (especially in rural or wilder parts of every country).

참고URL : https://stackoverflow.com/questions/929684/is-there-common-street-addresses-database-design-for-all-addresses-of-the-world

반응형