문제 상황

상품은 사이즈 옵션을 S,M,L 등으로 갖고있고 이를 DB에 저장 할 때 어떻게 저장하는게 좋은지 고민

🎯 옵션 테이블 생성

상품 테이블의 id(pk)를 외래키로 갖는 사이즈 옵션 테이블을 만들어 관리하는게 제 1 정규화를 만족시키는 방법

🎯 상품 테이블에 사이즈 컬럼 사용

상품 테이블의 사이즈라는 컬럼을 사용하면서 각 사이즈는 ‘ , ’ 로 구분

하지만 한 컬럼에 여러개의 값이 저장되게 됨

해결 방안

관련 내용을 많이 찾아봤는데 정해진 정답은 없고 상황에 따라 사용하는것이 좋다고 판단

우리 프로젝트에는 사이즈의 삽입 삭제등 변경 기능이 없고 조회 요청은 많음

따라서 굳이 사이즈를 다른 테이블에 저장해뒀다가 조회시 조인해서 가져오는것보다는 정규화가 깨지더라도 상품 테이블에 사이즈 컬럼을 만들고 ‘ , ‘ 로 구분해서 저장하는게 효율적일 것 같다 생각돼서 그렇게 하기로 결정

우리 프로젝트에는 상품의 옵션이 사이즈 하나만 있지만 색상 혹은 다른 옵션이 많이 있거나 옵션 관련 변경이 자주 있었다면 옵션 테이블을 따로 만드는게 좋았을수도 있다고 생각됨