2010-04-07 4 views
2

프로젝트 용 데이터베이스를 설계 중입니다. 나는 열이 10 개있는 테이블을 가지고 있으며, 테이블이 액세스 될 때마다 대부분 사용되며, 3 열을 더 추가해야합니다.데이터베이스 디자인 질문

View Count 
Thumbs Up (count) 
Thumbs Down (Count) 

이 테이블은 테이블에 액세스 할 때 쿼리의 90 %에서 사용됩니다. 그래서, 내 질문은 테이블을 깨고이 3 개의 열 + 외국인 ID를 갖거나 13 개의 열로 만들고 조인을 사용하지 않는 새 테이블을 만드는 것이 더 나은지 여부입니다.

이 열은 자주 사용되기 때문에 더 많은 열을 3 개 추가하는 것이 좋겠지 만 % 90 시간이 사용될 열을 10 개 더 만들어야 할 경우 해당 열을 추가하거나 추가해야합니까? 새 테이블 및 사용 조인?

열이 자주 사용되는 경우 테이블을 중단 할시기가 확실하지 않습니다. 의견 있으십니까? 그럼 난 확실히 그냥 기존 테이블에 필드를 추가하는 경향 될 것이다 사전에

감사합니다,

답변

5

는 사용 예 (90 %)의 같은 높은 번호이고 필드는 숫자 만 (텍스트가 아닌) 때문에 .

편집 : 정보가 크거나 자주 액세스되지 않는 경우 테이블을 구분하십시오. 고정 된 규칙은 없습니다. 이점에 대해 확실하지 않으면 테스트를 실행해야 할 수도 있습니다.

+0

감사합니다. – deniz

1

는 사용의 빈도는 답변을

질문은 (행 또는 열 수에) 큰 테이블로 시작 적어도 때까지, 테이블 레이아웃에 대한 더 우려해야합니다 : 그것은과 정규화 추가 열. 구글 그것, 거기에 대한 리소스 (비록 다양한 품질)

+0

감사합니다.이 테이블은 현재 100,000 개의 행을 가지고 있으므로 그리 크지는 않지만 몇 달에 약 300k-400k 행을 가질 것으로 예상되며 많은 가능성이 있습니다. 그래서 나는 디자인에 대해 약간의 우려를 가지고있다. – deniz

0

내 충고는 cedo의 것과 같습니다 : 13 열로 가십시오.

다른 인덱스를 사용하면 DB에 다른 테이블을 추가해도 저장 한 공간을 많이 차지하지만 쿼리가 더 느리고 복잡해질 수 있습니다.

2

공간은 요즘 큰 문제가 아니다 - 나는하지 "얼마나 자주 것,"직접 테이블에 관련된 컬럼입니다 "테이블에 열을 추가하기로 결정이 을 기반으로해야한다는 말을하려는 열을 사용하십시오 ".

기본적으로 네, 테이블에 추가하십시오. 주류 데이터베이스 설계에 대한 추가 고려 사항은 3NF을 참조하십시오.

0

Database Normalizatio n을 살펴보고 데이터베이스 구조 계획에 대한 명확한 지침을 찾아보십시오.

1

일부 이전 포스터. 95 %의 시간 동안 논리적 인 엔티티를 기반으로 테이블을 디자인해야합니다. 13 가지 데이터 요소가 모두 동일한 "것을"묘사하면 모든 것이 하나의 테이블에 속합니다. 얼마나 자주 사용하거나 함께 사용하기를 기대하는지에 따라 여러 테이블로 나누지 마십시오. 이것은 일반적으로 해결하는 것보다 더 많은 문제를 만듭니다.

매우 큰 필드가있는 테이블로 끝나고 그 중 일부 필드 만 정상적으로 사용되며 성능 문제가 발생하는 경우이를 분해 할 수 있습니다. 그러나 실제로 성능 문제를 일으키는 것을 볼 때만 그렇게해야합니다. 이 지역의 선제 공격은 거의 항상 실수입니다.

성능상의 이유로 테이블을 분리 할 때 드물게 사용되는 매우 큰 텍스트 필드가있을 때만 값이 표시됩니다. '기타 추가 설명'입력란이나 '이 고객이 작성한 소설의 텍스트'가있는 경우와 같습니다.

관련 문제