필자는 매우 기본적인 질문을 가지고 있는데, 이는 더 효율적인 디자인, 더 많은 조인을 포함하거나 더 큰 테이블에 열을 추가하는 것일까?더 많은 조인 또는 더 많은 열이 있습니까?
예를 들어, 우리는 아래와 같은 친척을 저장 테이블이 있다면 :
Person | Father | Mother | Cousing | Etc.
________________________________________________
가 직접 해당 테이블에 등 이름, 나이를 나열하는 것이 더 있을까를 ... 또는 더 나은 사람이하는 이름, 나이 등이있는 테이블, person_id 또는 뭔가로 연결되어 있습니까?
예를 들어이 두 가지 옵션 이상이 있기 때문에 약간 간단한 예일 수 있습니다. 그러나 설명을 위해 관계를 개인 테이블에 저장할 수 없다고 가정하십시오.
나는 위의 두 가지 선택 사항 중 후자를하고 있지만 사람 테이블이 충분히 커지거나 연결된 열이 충분할 때 성능에 문제가 생길지 궁금하다. 관계 테이블에.
답변은 다릅니다. 미래에 확장 성이 있거나 요구 사항이 변경되지 않을 것으로 예상하는 경우. 거의 조인은 일반적으로 성능 측면에서 보면 좋지만 데이터베이스 디자인을 잘하면 공통 요소를 구분할 수 있습니다. 아버지, 어머니, 한 명 이상의 사촌 등이있는 경우이 디자인은 잘 확장되지 않습니다. PersonID, RelationID, RelationTypeID, EffectiveDate, EndDate의 3 열만 입력하면 쿼리가 더 쉽습니다. 이 방법을 사용하면 사람들이 관계를 "잃어버린"시기를 쉽게 이해하고 확장 할 수 있습니다. – xQbert
데이터가 수십 기가 바이트가 될 때까지 성능은 문제가됩니다. 시뮬레이션중인 세계의 정확한 모델이되도록 데이터를 설계하고 표준화하십시오. 프로그래밍으로 저장하는 시간은 성능이 저하 될 수도 있습니다. –