2013-01-10 4 views
0

내 시나리오가 정상적인 레벨의 레벨과 관련하여 정규화에 대한 질문이 있습니다. 이름 필드 1, 주소 2, 우편 번호 및 전화 번호와 같은 필드가있는 테이블이 몇 개 있습니다.데이터베이스 표준화; 반복 필드

Client [id, instructor id, name, address, postcode, phone, practical, theory] 
Staff [id, office id, name, job, address, postcode, phone] 
Registration id, name, address, postcode, phone] 
Office [id, manager id, address, postcode, phone] 

는 정상적인 형태의 정상화 그런 일을한다면

Client [id, instructor id, details_id, practical, theory] 
Staff [id, office id, details_id, phone] 
Registration [id, details_id] 
Office [id, manager id, details_id] 

Details [id, full_name, address1, address2, postcode, phone_no] 

하지

확실히 ... 그들과 같이 무언가로 필드를 분리하기 위해 존재겠습니까하지만 ...

단지 생각했다
+0

주소 테이블? 그래. 그러나 엔티티에 이름을 지정했습니다. 비슷한 문제에 직면 한 SOmeone : http://stackoverflow.com/questions/5530681/normalize-an-address – mcalex

+0

고마워,하지만이게 정상화의 유형을 궁금해했다. NF3? 나는 그것을 100 % 이해하지 못한다 .. – Callum

+0

여러 테이블에서 비슷한 필드를 분리하는 것은 일반적인 폼의 문제가 아니다. 각 원본 테이블은 모두 3NF입니다. 여러 테이블의 모든 유사한 데이터를 하나로 모으는 것은 정규화 기술이 아닙니다. 이런 식으로하는 이유는이 정보에 대한 유지 보수 코드를 합리화하는 것일 수 있습니다. 유일한 예외는 테이블이 주소 특성을 공유하는 일부 4 퍼 유형의 부속 유형 인 경우 일 수 있습니다. 그렇다면 관계를 조금 뒤집어 놓았습니다. 'Details'는 실제로'Supertype'입니다. –

답변

1

여러 테이블에서 같은 의미를 갖는 열을 정규화 할 필요는 없습니다. 그것은 데이터베이스 설계의 다른 형식적인 원칙과 관련이 있습니다. Chris Date는 The Principle of Orthogonal Design 또는 POOD라고합니다.

필자가 아는 한, POOD의 근간을 이루는 공식 논리는 아직 일반적인 형태와 같이 깊이 연구되거나 널리 받아 들여지지 않았습니다. 그것이 비판이 아니라 관찰입니다.