700개 정도의 상품이 있는데, 상품 하나마다 갖는 컬럼의 갯수가 모두 다름
(상품 하나당 대략적으로 50개, 최고 많은건 559개까지 가지는 상품도 있음.)
이런 경우 DB설계를 어떤식으로 해야 효율적임?
1. 상품 하나마다 테이블을 만든다
- 테이블이 700개가 됨 ㅁㅊ
2. 컬럼을 559개 만든다
- 컬럼을 559개 가지는 상품이야 뭐 그렇다쳐도
- 50개 100개 이정도의 컬럼을 가지는 상품들은 나머지 컬럼들이 다 NULL값으로 들어감,,,
이런 방법밖에 안떠오르는데,,, 뭐 좋은 대안 있으면 방향 제시좀 부탁드림
뭘하려는건지는 모르겠지만 디비설계는 그렇게 하면안된다. 지금 묻는것에만 대답하면 테이블 두개를 만들고, 상품코드와 상품 이름 두개의 컬럼만 가진 테이블을 하나 만들어라. 그리고 다른하나는 상품코드와 상품속성 이렇게 두개의 컬럼만 가진 테이블을 만들고 두 테이블을 상품코드로 연결한다. 그렇게 하면 한 상품코드에 상품속성은 8개 로우가 될수도있고 400개 로우가 될수도있으며 null은 없는 테이블이 된다. 필요한것만 로우로 들어갈테니까. 쉽게말해 가로로 펼치는게 아니라 세로로 넣어라
나중에 가로로 보여지는건 오라클 wm_concat 함수 검색해봐라. 무슨 디비를 쓰는진 모르겠지만 같은 기능의 함수가 있을것이다
정말 감사함니다