해결된 질문
작성
·
266
0
3분 14초에
FAVORITE_FOOD와 ADDRESS 테이블에 PK에 일반적으로 사용하는 ADDRESS_ID와 같은 식별자를 쓰는 것이 아닌 MEMBER_ID를 쓰는 이유는 엔티티가 아닌 값타입이기 때문이라고 말씀해주셨는데요. 이 개념이 이해가 잘 안되네요.ㅠ.ㅠ
엔티티도 결국 테이블간 관계가 맺어진것이고, 값타입도 결국은 테이블간 관계가 맺어진거라면 저는 일대 다 관계랑 뭐가 다르지라고 생각하여 ADDREES테이블 PK도 별도로 만들려고 하면되지? 왜 MEMBER_ID값을 PK로 써야할까라는 생각이 듭니다. 경우에 따라 값타입으로 써야한다고 말씀을 주시는것같은데 부연설명좀 해주실수있을까요?
PKMEMBER_ID
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
답변 1
0
안녕하세요, JongJin Kim 님! 공식 서포터즈 codesweaver 입니다.
데이터 모델링 관점에서 보면 FAVORITE_FOODS도 엔터티에 해당합니다.
만약 좋아하는 음식을 Member의 favorite_foods 속성에서 모두 관리한다면 (가령, favorite_foods의 값이 '사과,바나나,파인애플' 처럼 콤마를 구분자로 복수의 값이 들어가며, 값의 길이는 일정하지 않은경우) 정규형 위반으로 이 속성을 별도의 엔터티로 도출하여 정규화를 합니다. 정규화 결과는 강의에서 보여드린것 같은 FAVORITE_FOODS 테이블 형태가 됩니다.
강의에서 말한 요지는, FAVORITE_FOODS 가 다른 엔터티와 동등한 정도의 중요도를 갖지 않는다는 의미입니다. 만약 업무요건상 FAVORITE_FOODS 에 FOOD_NAME외에 추가로 중요한 속성들을 추가해야 한다면 그때는 FAVORITE_FOODS를 엔터티로 승격할지 여부를 고려해야 합니다.
감사합니다.