2012-11-21 2 views
0

나는 세 가지 모델이 있습니다표준화 또는 비정규 화 하시겠습니까?

  • 국가 이름 : 문자열
  • 주 이름 : 문자열, 국가 : 참조
  • 도시 이름 : 문자열, 상태 : 참조

내가 모델을 가지고 :

  • 사용자 이름 : 문자열, 성, 도시, 참조 번호 ...

이 모델에서는 주 및 국가에 대한 참조를 유지해야합니까? 아니면 도시 모델에 대한 참조 만 유지해야합니까?

어떤 솔루션이 더 좋습니까? 사이트의 트래픽이 그리 높지는 않습니다.

감사합니다.

답변

0

이 대답은 사용 사례에 따라 다릅니다. 문제의 주소로 메일을 보내야 할 필요가 있다면 매우 일관된 주소를 원할 것입니다. 아니면 다른 사용자가 알 수있는 정보 일 수도 있습니다.

"Newton"이라는 도시에 살고 있지만 실제 우편 주소는 "Newton Center"라고하지만 대부분의 사람들이 그것을 "Newton Center"라고 씁니다. 앱에서이 데이터가 사용되는 방식에 따라 사용자가 도시를 입력 할 수 있도록 허용 할 수 있습니다. 예를 들어 자동 완성이나 다른 방법으로 도움을 줄 수있는 기존 목록을 사용할 수 있습니다. 사용자가 데이터베이스에 살고있는 모든 도시가 없거나 오류가있는 경우 사용자가 처리해야하는 고통이 있습니다. 이 문제를 처리 할 수있는 방법은 다양하지만 데이터의 일관성을 위해 유용성을 모두 상쇄합니다.

3 가지 모델이 이미 있고 그것들이 채워져 있다면 어쩌면 그것이 갈 길이고 적절하게 표준화 된 데이터 모델을 갖는 것이 항상 나의 첫 번째 본능입니다. 그러나 이것은 특별한 상황입니다. 특히 주 (및 지방) 및 국가에서는 코드에 해시로 저장할 수있는 ISO 표준 코드가 있으며 데이터베이스에 ISO 코드 만 저장하면됩니다. 이러한 참조를 제공하는 수많은 보석이 있습니다.

저는 거의 항상 "정규화 된 데이터베이스"라고 말하지만 도시, 주 /도, 국가 (우편 번호)의 경우 데이터베이스 기반 모델을 사용하지 않기로 결정할 수 있습니다. 가장 일반적인 "응용 프로그램이 주소를 처리하는 방법이라고 생각합니다.

관련 문제