문제

이것은 "최상의" 데이터베이스에 국제 주소를 저장하는 방법은 무엇입니까?스키마 형식으로 답변하고 해당 방식을 정규화하기로 선택한 이유에 대한 설명을 작성하세요.또한 각 필드의 유형과 길이를 선택한 이유를 설명하세요.

메모:당신이 필요하다고 생각하는 분야를 결정합니다.

도움이 되었습니까?

해결책

일반 자유 형식 텍스트입니다.

전 세계의 모든 우편번호를 확인하는 것은 너무 어렵습니다.고정된 국가 목록은 정치적으로 너무 민감합니다.의무적인 주/지역/기타 행정 구역은 매우 부적절합니다(어느 카운티에 살고 있는지 묻는 질문을 너무 자주 받습니다. 그레이터 런던은 전혀 카운티가 아니기 때문에 그렇지 않은 경우도 있습니다).

더 중요한 것은 단순히 불필요하다는 것입니다.귀하의 응용 프로그램이 심각한 방식으로 주소를 모델링할 가능성은 거의 없습니다.우편주소를 원하시면 우편주소를 물어보세요.대부분의 사람들은 우편 주소가 아닌 다른 것을 입력할 정도로 멍청하지 않으며, 그렇게 하면 새로 구입한 품목에 작별 인사를 할 수 있습니다.

이에 대한 예외는 어쨌든 자연스럽게 한 국가로 제한되는 작업을 수행하는 경우입니다.이 상황에서는 우편 주소를 식별하는 데 충분한 { 우편번호, 집 번호 } 쌍을 요청해야 합니다.미국의 우편번호 확장을 사용하여 비슷한 결과를 얻을 수 있을 것 같습니다.

다른 팁

과거에는 ups/fedex 배송 주소를 웹사이트에 입력한 후 국제적으로 필요한 양식을 모델링했습니다(그들이 국제 주문을 처리하는 방법을 모른다면 우리는 모두 당황할 것이라고 생각했습니다).그들이 사용하는 필드는 스키마 설정을 위한 참조로 사용될 수 있습니다.

일반적으로 주소를 원하는 이유를 이해해야 합니다.배송/우송용인가요?그렇다면 실제로는 단 하나의 요구 사항이 있습니다. 국가를 분리하는 것입니다.다른 줄은 자유 형식이므로 사용자가 입력할 수 있습니다.그 이유는 메일의 일반적인 전달 전략 때문입니다.외국으로 들어오는 모든 메일은 다른 주소 줄을 확인하지 않고 전달됩니다.따라서 자세한 정보는 해당 국가에 위치한 메일 분류기에 의해서만 분석됩니다.수신자와 마찬가지로 그들은 국가 관례에 익숙할 것입니다.

(UPS는 일부 소규모 유럽 국가를 하나로 묶을 수 있습니다.모든 저지대 국가는 아마도 벨기에에서 서비스를 받을 것입니다. 이 아이디어는 여전히 유효합니다.)

국가/도시 및 주소 텍스트를 추가하는 것이 좋을 것 같습니다.국가와 도시는 별도로 보고해야 합니다.관리자 언제나 예상하지 못한 이런 종류의 보고서를 요청하고 저는 대규모 데이터베이스를 통해 LIKE 쿼리를 실행하는 것을 선호하지 않습니다.

Facebook을 부당하게 존중하지 마십시오.그러나 매일 출시되는 많은 웹 애플리케이션에서는 데이터베이스의 전체 구조가 간과되는 것 같습니다.분명히 저는 약간의 노력 없이 주소 구조로 모든 잠재적인 변수를 다루는 완벽한 솔루션은 없다고 생각합니다.즉, Facebook은 자동 완성 기능과 결합하여 위치 입력 데이터를 가져와 대부분의 중복 항목을 제거합니다.그들은 데이터베이스를 잘 구성하여 저비용, 낮은 오류 방식으로 자동 완성 정보를 고객에게 실시간으로 제공함으로써 고객이 기존 목록에서 정확한 위치를 어느 정도 선택할 수 있도록 함으로써 이를 수행합니다.

가장 좋은 해결책은 원하는 지리적 범위가 포함된 제3자 데이터베이스에 액세스하고 이를 사용하여 초기에 사용자 위치 정보를 시드하는 것입니다.이렇게 하면 자신만의 것을 만드는 번거로운 작업을 피할 수 있습니다.운이 좋으면 새로운 사용자가 제3자 공급업체로부터 직접 올바른 자동 완성 정보를 받을 수 있도록 하여 서버의 로드를 줄일 수 있습니다.결국 도시, 국가 등과 같은 위치 정보에 대한 대부분의 자동 완성을 채울 수 있게 됩니다.사용자 입력 데이터로부터 자신의 데이터베이스에 포함된 정보로부터.

데이터 사용 계획에 대해 좀 더 자세한 정보를 제공해야 합니다.예를 들어 도시, 주, 국가와 같은 필드는 단일 테이블의 텍스트이거나 외래 키를 사용하여 별도의 테이블에 연결된 코드일 수 있습니다.

가장 간단한 것은

address_line_01 (필수, 비 빈 공백) 주소 _line_02 address_line_03 랜드 마크 시티 (필수) 핀 (필수) Province_district State (필수) 국가 (필수)

위의 항목은 모두 적절한 필드 길이를 가진 텍스트/유니코드일 수 있습니다.

해당하는 경우 전화번호.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top