소프트웨어 개발자를위한 테이블과 관계를 디자인하는 팀이 있습니다. 우리 조직에서는 3NF 정규화 시행에 대해 매우 엄격합니다. 솔직히 말해서 저는 조직의 규모와 시간이 지남에 따라 요구 사항이나 고객이 어떻게 변하는 지에 동의합니다. 디자인 결정의 이유에 대해 명확하지 않은 영역은 주소입니다.
이것은 주로 미국의 주소에 중점을 두지 만, 이것이 모든 국가에 적용될 수 있다고 생각합니다. 주소의 각 부분은 주소 테이블에서 자체 열을 가져옵니다. 예를 들어,이 거친 미국 주소를 사용하십시오
Attn: Jane Doe
485 1/2 N Smith St SW, APT 300B
Chicago, IL 11111-2222
다음과 같이 데이터베이스에서 분할됩니다.
- 거리 번호 : 485
- 거리 비율 : 1/2
- 거리 사전 방향 : N (북)
- 거리 이름 : Smith
- 거리 유형 : ST (거리)
- 거리 방향 : SW (남서쪽)
- 도시 : 시카고
- 주 : IL (일리노이)
- 우편 번호 : 11111
- 우편 번호 : 2222
- 국가 (미국으로 가정)
- 주의 : Jane Doe
- 사서함 : NULL
- 주거 유형 : APT (아파트)
- 거주 번호 : 300B
그리고 농촌 노선과 계약 노선과 관련된 몇 가지 다른 열이있을 것입니다. 또한 특정 응용 프로그램에는 몇 개의 국제 주소가있을 수 있습니다. 데이터 모델러는 국제 주소에 특정한 열을 추가 할 것이라고 말했는데, 이는 일반 1 행, 2 행 필드입니다.
처음에 나는 이것이 선상에 있다고 생각했다. 온라인으로 반복해서 검색한다는 것은 주소 라인 1, 2, 3 및 4를 사용한 다음 도시, 지역 및 우편 번호를 분리하는 것입니다. 이 세분성이 유용한 새로운 응용 프로그램에 대한 하나의 유스 케이스가 있습니다. 사용자가 중복 비즈니스를 만들지 않는지 확인해야하며 주소 확인이 유효성 검사 중 하나입니다. 우리는 할 수 는 주소 라인 1과 2와 함께 작동하도록 얻을 수 있지만 더 어려울 것입니다.
특정 응용 프로그램의 경우 비즈니스 및 사람들을 위해 여러 종류의 주소 (물리적, 우편, 운송 등)를 저장해야합니다. 우리는 수 인쇄 양식 편지를 생성 할 필요가 있지만, 요구 사항은 지금까지 논의되지 않았습니다.
우리 조직의 응용 프로그램이 지원해야 할 다른 것들 :
- 감사 (전체 히스토리 테이블 사용)
- 우편 라벨 인쇄
- 인쇄 된 양식 생성
- 보고 (국가 및 지역 정부)
우리의 응용 프로그램이 다른 모든 응용 프로그램이 수행하는 모든 작업을 수행하지는 않지만 주소를 여러 구성 요소로 나누는 것이 내가 일하는 엔터프라이즈 표준 입니다. 우리의 응용 프로그램이 응용 프로그램의 이점을 얻을 수 있는지 여부에 관계없이 우리는이 작업을 수행해야합니다.
Semi Related StackOverflow question : 좋은 주소 파서는 어디에 있었지만 주소를 파싱하는 것이 얼마나 어려운지를 보여줍니다.
디자인 결정을 더 잘 이해하고 고객을 아이디어에 판매하기 위해 ...
주소를 개별 열로 분할하면 어떤 문제가 해결됩니까?
이와 같은 시스템을 구현 한 사람에게는 문제가 발생하여 보너스 포인트가 부여됩니다.