2013-07-23 6 views
1

안녕하세요 이러한 데이터베이스 디자인 중 하나가 더 궁금하다 :데이터베이스 디자인 - 더 많은 관계를 추가하는 것보다 중복성이 더 좋습니까?

내가 쇼핑 DB를 가지고, 두 개의 테이블이 있습니다 CategoriesBrands을. 두 표 모두 name, descriptionimage_url 열을가집니다.

중복 열을 보관해도 괜찮습니까? 아니면 그 정보를 저장하는 테이블을 만들어야합니까?

이 더 잘 시각화하기 위해, 여기에 차트

중복 하나

| CATEGORIES | | BRANDS  | 
| - name  | | - name  | 
| - description | | - description | 
| - image_url | | - image_url | 

또는 추가 새 테이블입니까?

| CATEGORIES | | INFORMATIONS |  | BRANDS  | 
|    |--->| - name  |<-----|    | 
| - info_id  | | - description |  | - info_id  | 
        | - image_url | 

감사합니다이 경우

+0

반대의 이유가 아주 좋은 경우가 아니면 정규화 (두 번째 방법)가 거의 항상 더 좋습니다. [데이터베이스 정규화] (http://en.wikipedia.org/wiki/Database_normalization)에 대한 위키 백과 문서를 읽어보십시오. – Amadan

+0

답장을 보내 주셔서 감사합니다. 두 번째 것이 더 느린가? – hrsetyono

+0

예,하지만 중요하지는 않습니다. 모든 키가 기본 키를 가리키고 기본 키가 항상 인덱싱되므로 인덱스가 좋다고 가정하면 예제가 복잡해지기 쉽지 않습니다. – Amadan

답변

5

는 정말 같은 정보가 아니다. category_name, category_description, brand_name 및 brand_description입니다.

많은 것들에 대한 일반적인 정보를 유지하기 위해 테이블을 만드는 것은 좋지 않습니다.

정규화에 대한 토론에서 일반적으로 데이터를 정규화하는 것이 더 나은 설계로 간주되며 이러한 디자인으로 시작하겠다. 데이터가 발전하고 커짐에 따라 일부 테이블을 비정규 화하는 것이 필요할 수 있습니다. 저장 공간 비용과 데이터 일관성 손실 위험을 감수하면서 데이터 검색 속도가 더 빠를 수 있기 때문입니다.

+0

+1 - 구조를 완전히 잘못 읽었습니다. – Amadan

+0

고마워요! 나는 첫 번째 구조를 지킬 것이다. – hrsetyono

관련 문제