[DB] 데이터베이스 모델링

chosh·2021년 8월 13일
0

데이터 베이스 모델링은
최상위 데이터 부터 최하위 데이터로 모델링 하는 것이 좋다

예를 들면

스타벅스메뉴:음료, 음식, 상품

음료 : 아메리카노, 카페라떼, 에스프레소
음식 : 케이크, 쿠키, 샌드위치
상품 : 텀블러, 카드, 머그컵

이런식으로
대분류를 먼저 고려하고, 소분류를 계속 해 나아가는것이 데이터모델링시 추가나 삭제하기 좋다

데이터베이스 모델링을 할때에는

원투원, 원투매니, 매니투매니 방식이 있고,

원투원은 음료 이름과 음료 설명과 같이 각 데이터서로 참조 하는 데이터를 말하며,
원투매니는 음료 이름과 음료 사진들과 같이 여러가지 데이터한가지 데이터를 참조하는 것을 말하고,
매니투매니는 음료 이름과, 알러지 종류 들과 같이 여러가지 데이터다수의 데이터를 서로 참조하는 것을 말한다


각 데이터는 row 와 column을 가지고 있고, row 데이터는 서로 겹처선 안된다.
그리고 각 데이터는 pk번호와, fk번호를 가지고 있는데,

pk번호는 각 데이터 테이블 고유의 번호를 말하고,
fk번호는 참조하는 데이터 테이블의 pk번호를 참조하는 쪽에서 기록하는 것을 말한다.


원투원 데이터는 하나의 데이터 테이블로 구성하고,
원투매니 데이터는 여러가지 데이터의 pk번호를 참조하는 한가지 데이터에서 fk번호로 저장해서 데이터를 연결 한다
매니투매니 데이터는 각 데이터의 pk번호를 fk 번호로 참조하여 중간 테이블을 새로 생성한다 이때 이름은 각 데이터의 이름을 참조 해서 하면 된다


스타벅스 데이터베이스 모델링

스타벅스 데이터베이스 모델링을 진행하면서,
페이지를 조회 할 경우, 음료의 사진과 설명을 조회페이지가 있었는데
이때 음료 각각의 영양정보 데이터를 함께 조회 해야 되기 때문에 원투원데이터지만, 데이터 테이블을 나눠서 구성했다

하지만, 원투원 데이터는 특별한 경우가 아닌 이상 하나의 데이터 테이블에 저장 하여야 한다 이유는,

  • 페이지의 구성이 언제 달라 질지 모르고,
  • 데이터를 이용하여 어떤 새로운 정보를 만들 때 정보들이 분리 되어 있으면 제약이 많다
  • 화면을 기준으로 나누는 것보다, 데이터를 기준으로 테이블을 나눠 모델링을 진행하는것이 좋다

사진의 url 데이터의 글자수가 많아서 데이터 손실이 많을거라고 생각해서 이미지는 필요할 때만 조회 할 수 있도록, 테이블을 나누어 구분하였지만,

데이터의 저장 공간은 굉장히 크기 때문에 url의 글자수 때문에 테이블을 나누는것은 오히려 조회하는데 제약 사항만 늘어날 뿐이기 때문에 이미지가 원투매니 형식으로 많은것이 아니라면 하나의 테이블로 구성하는것이 좋다

profile
제가 참고하기 위해 만든 블로그라 글을 편하게 작성했습니다. 틀린거 있다면 댓글 부탁드립니다.

0개의 댓글