문제

회사 데이터베이스의 일부를 재창조하고 있으며 향후 요구 사항을 충족시키지 않기 때문입니다. 현재 우리는 주로 평평한 파일과 완전히 실현되지 않은 일부 층화 된 테이블을 가지고 있습니다.

내 사고 방식은 ZIPS 테이블을 제외한 각 카테고리에 대한 테이블이 있다는 것입니다. 아래 이미지를 참조하십시오.

데이터베이스 다이어그램 http://www.freeimagehosting.net/uploads/248cc7e884.jpg

내가 생각하고있는 한 가지는 우편 번호를 제거하고 우편 번호가 거의 독특하기 때문에 우편 문자 테이블에 우편 번호를 놓고 우편 번호에 테이블을 색인화하는 것입니다. 유일한 단점은 우편 번호가 주요 0과 우편 번호를 관리하기위한 바르 차 코드 여야한다는 것입니다. 내 논리에 결함이 있는지 알고 싶습니다.

도움이 되었습니까?

해결책

나는 미국 우편 코드와 영토 편차 시스템을 잘 모르지만 독일과는 다소 다소 같다고 생각합니다.

  • 주에는 많은 카운티가 있습니다.
  • 카운티에는 많은 도시가 있습니다.
  • 도시에는 많은 우편 번호가 있습니다.

따라서 다음 스키마를 사용합니다.

ZipCodes          CityZipCodes
------------      ----------------      Cities
ZipCode (PK) <─── ZipCode (PK)(FK)      -----------
                  City    (PK)(FK) ───> CityId (PK)
                                        Name
                                        County (FK) ───┐
                                                       │
                                                       │
                                     Counties          │
                                     -------------     │
              States                 CountyId (PK) <───┘
              -----------------      Name               
              StateId      (PK) <─── State    (FK)
              Name
              Abbreviation

우편 번호 당 여러 도시에 수정되었습니다.

다른 팁

당신이 알아야 할 한 가지는 모든 도시가 카운티에있는 것은 아니라는 것입니다. 버지니아에서는 도시 나 카운티에 있지만 결코 둘 다입니다.

당신이 가진 다이어그램을 보면, 상태 테이블은 실제로 필요한 4 개의 외부 테이블 중 하나입니다. ID와 단일 값을 가진 조회 테이블은 노력할 가치가 없습니다. 이러한 관계는 메인 테이블 (Ziptocities)에서 단일 값을 만들도록 설계되었습니다.

왜 카운티에 관심이 있는지 스스로에게 물어봐야합니다. 미국의 많은 주에서는 전통과지도를 넘어서는 중요하지 않습니다.

다른 질문은 주소가 정확하다는 것이 얼마나 중요한가? 중요한 편지가 적시에 전달되지 않으면 얼마나 많은 사망이있을 것인가 (아마도 처방약의 리콜에 관한 편지가 있다면 많은 사람들이있을 수 있습니다!)

우편 서비스의 데이터를 사용하는 것에 대해 생각하고 싶을 것입니다. 그렇게하면 좋은 주소를 얻을 때 우편 서비스가 그렇게 말했기 때문에 우편물을 배송 할 수 있습니다.

프로세스와 논리 모두에 결함이있는 것 같습니다.

나는 당신이 잠시 테이블과 관계에 대해 생각하지 않는 것이 좋습니다. 대신 사실에 대해 생각하십시오. 데이터베이스가 지원 해야하는 유효한 주소 목록을 작성하십시오. 많은 놀라움이 당신을 기다리고 있습니다.

주소를 우편 레이블과 혼동하지 마십시오. 그들은 전혀 같은 것이 아닙니다. 모델링 캐리어도 고려하십시오. 미국에서 주소가 유효한 지 여부는 운송 업체에 따라 다릅니다. 예를 들어, 내 PO 박스는 캐리어가 USP 일 때 유효한 주소이지만 캐리어가 UPS 일 때는 아닙니다.

시간을 절약하려면 국제 주소 형식을 탐색 할 수 있습니다. 비트 부스트.

두 나라가 동일한 우편 번호를 가지고 있다면 논리가 작동합니까? 이 두 사람은이 경우 다른 도시를 가리키고있을 것입니다. 고려해야 할 사항은 다음과 같습니다

  1. Zipcode를 일종의 기본 키로 주소로 사용 하시겠습니까? (도시, 주 및 국가 분야를 임대 할 때). 이 경우 하나의 테이블에 우편 코드, 도시, 주, 국가를 가질 수 있습니다. 도시, 주 등에 인덱스를 만듭니다.
  2. 자동 채우기가 유일한 관심사 인 경우 구체화 된보기를 작성하여 사용하십시오.

David C. Hay의 '데이터 모델 패턴'을 읽는 것이 좋습니다.

그러나 유효한 의료 청구를 가진 모든 사람이 법에 의해 청구가 해결 될 때까지 미국에 남아 있어야하는 것은 아닙니다. 사람들이 움직입니다.

샌프란시스코는 캘리포니아의 도시입니다. 앨라배마의 도시가 아닙니다. 디자인이 "샌프란시스코, AL"과 같은 말도 안되는 항목을 방지합니까?

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