2013-04-10 2 views
0

stackoverflow에 관한 질문과 다른 문제점이 있습니다.복수 대 단일 테이블

"Foo USA"와 "Foo World"를 나타내는 두 개의 엔티티가 있지만 Foo의 열은 두 테이블에서 모두 동일하므로 두 테이블을 조인하고 검색해야하는 시나리오는 없습니다 , 그들은 그들의 정의에 의해 서로 완전히 독립적입니다.

두 개의 테이블이 두 개의 독점적 인 엔터티를 정의하기 때문에 두 개의 테이블을 분리하여 두는 것이 좋습니다. 또는 내가 미국 또는 세계에 속하는지 정의하는 열이있는 하나의 테이블을 보유해야합니까?

작은 독립적 인 테이블에 데이터를 유지하면 성능이 향상됩니까?

도와 주셔서 감사합니다.

답변

3

작은 독립적 인 테이블에 데이터를 저장하면 성능이 향상되지만 예상되는 테이블 크기에 따라 눈에 띄지 않을 수 있습니다. 수억 개의 레코드가 필요하지 않다면 필요에 따라 인덱스가 있다고 가정하고 단일 테이블을 사용하는 데 문제가 없어야합니다.

모든 것이 동일 해지고 데이터에 액세스 할 때 하나의 쿼리 만 작성하고 유지해야하기 때문에 단일 테이블이 개발 관점에서 선호됩니다. 둘 다 포함하는 것을 잊어 버릴 염려가 없습니다. 그 의미에서 유지하는 것이 더 쉬울 것입니다.

그렇다면 시스템의 미국 부분에 WORLD 부분보다 눈에 띄는 차이점이 있다면이 부분은 별도로 유지하는 인수가됩니다.

그렇다면 지금은 같은 테이블에 넣으려는 노력이 많지 않습니다. 이제는이 테이블을 병합하는 것이 좋습니다. 그것은할만한 가치가 있으며 결국에는 장기간에 걸쳐 시간을 절약하고 아마도 몇 가지 버그를 예방할 것입니다.

+0

통찰력에 감사드립니다. –

+0

더 이상 동의 할 수 없습니다. SQL 서버와 같은 Db 구현은 테이블 이름에 대한 변수 이름을 서브 티티시 할 때 최적으로 작동하지 않으므로 두 테이블에 모두 액세스 할 수있는 일반 코드를 가질 수 없습니다. 대신 1 테이블을 최상으로 사용하십시오. –