2014-01-07 3 views
0

세 개의 테이블에 수백만 개의 레코드가있는 데이터베이스가 있습니다. 이제 중복 및 데이터 중복을 줄이기 위해이 세 테이블을 여러 테이블로 분할하려고합니다.데이터베이스 설계 관련 문제

많은 레코드 (사람)에는 도시, 주소, 전화, 팩스가 여러 개 있습니다.

그래서 새로운 테이블 주소, , 도시 , 우편 번호 , 주 , 나라 , 전화 , 팩스 될 것

내 질문에, 그것은 도시, 우편 번호, 주, 나라를 위해 잘가요 , 전화 테이블을 별도로 또는 그냥 주소 테이블에 이러한 테이블을 병합?

+0

이것은 http://dba.stackexchange.com/ – Carth

+0

에 속합니다. 중복성을 줄이려면 국가, 주 및 도시에 대해 별도의 테이블을 만드는 것이 좋습니다. 우편 번호와 전화 번호 및 주소를 단일 테이블로 병합 할 수 있지만. – AndyN

+0

나는 그 (것)들에게 dim.tables 같이 모든 sepearte를 만들 것을 제안하고 신원을 가진 사실 테이블에 연결되는 모두는 사업 열쇠가있는 dim.tables에 놓았다 ?? –

답변

1

주소, 도시, 우편 번호, 주 및 국가를 일반적으로 여러 레코드간에 공유되는 별도의 테이블로 분리 할 수 ​​있습니다. 추가 정보를 저장하는 경우에만 의미가 있습니다. 주 이름 및 약어. 그렇지 않으면 예를 들어 별도의 테이블을 가질 필요가 없습니다. 상태 이름에 대해 하나의 열만있는 상태.

전화 번호와 팩스는 일반적으로 서로 다른 레코드에서 공유되지 않으므로이를 구분할 필요가 없습니다.

+0

동의 - "주소"테이블 (미국/캐나다 만 해당), "전화"테이블 (집, 휴대폰, 팩스 등)을 가지고 있습니다. –