데이터베이스 테이블을 설계할 때 ‘한 칸에는 한 가지 정보만 들어가야 한다.’라는 규칙을 지켜야 한다. 이 규칙이 뭔지 알아보기 위해 이 규칙을 안 지킨 사례 먼저 살펴보자.
[사례 1]
users (사용자)
id (PK) | 이름 | 이메일 |
---|---|---|
1 | 박재성 | [email protected], [email protected] |
2 | 김시안 | [email protected], |
[email protected] |
[사례 2]
stores (가게)
id (PK) | 가게명 | 판매 상품 |
---|---|---|
1 | JSCODE 카페 | JS아메리카노, JS카페라떼 |
2 | 재성이네 국밥 | 재성이네 돼지국밥, 재성이네 육개장, 재성이네 수육 |
위 사례를 살펴보면 한 칸에 2가지 이상의 정보가 들어가있는 걸 확인할 수 있다.
“왜 한 칸에 2가지 이상 정보가 들어가면 안 되는걸까?”
외우지말고 이해를 해보자. 판매 상품을 조회해서 사용할 때마다 중간에 있는 콤마(,)를 제거하고 배열에 집어넣는 로직을 넣어야 한다. 판매 상품을 삽입할 때든 삭제할 때든 항상 콤마(,)를 신경써서 작업해야 한다. 그리고 한 칸에 데이터를 여러개 집어넣다보면 실수로 데이터를 중복해서 넣어버리기도 한다. 따라서 한 칸에는 한 가지의 정보만 넣으려고 하는 것이다.
한 칸에 2가지 이상의 정보가 들어가있을 때는 테이블을 분리하면 된다. 테이블을 분리함으로써 한 칸에 한 가지 정보만 들어가도록 해야 한다.
[사례 1 - 테이블 분리]