🐥 카카오테크캠퍼스 - 2단계 1주차 기본 Entity 설계
User(사용자)
- id : PK
- userName : 유저 이름
- email : 이메일
- password : 비밀번호
- createDate : 생성 날짜
- updateDate : 수정 날짜
Product(상품)
- 상품 상세보기
- id : PK
- productName : 제품 명
- description : 제품 설명
- image : 제품 사진
- price : 제품 가격
- starCount : 별점
- createDate : 생성 날짜
- updateDate : 수정 날짜
Option(옵션)
- id : PK
- productId : FK->Product.id
- optionName : 옵션 이름
- price : 옵션 가격
- createDate : 생성 날짜
- updateDate : 수정 날짜
Cart (장바구니)
- id : PK
- userId : FK -> User.id
- orderItem : FK -> Item.id
- totalPrice : 장바구니 가격
- quantity : 장바구니에 들어간 갯수
- createDate : 생성 날짜
- updateDate : 수정 날짜
Order(주문)
- id : 주문 번호(PK)
- userId : FK -> User.id
- orderItem : FK -> Item.id
- totalPrice : 장바구니 가격
- createDate : 생성 날짜
- updateDate : 수정 날짜
고민거리
- Order에 Order Item이 필요할까? 그냥 Item 테이블에 Order를 넣어두고 조회를 하는게 Join 보다 좋지 않을까?
SELECT
Order.id,
Order.user_id,
Order.total_price,
Order.order_date,
Item.product_id,
Item.quantity,
Item.price
FROM
Order
INNER JOIN
OrderItem
ON
Order.id = OrderItem.order_id
WHERE
Order.id = YOUR_DESIRED_ORDER_ID;
Item(주문 아이템)
- id : PK
- orderId : FK -> Order.id : 주문 번호
- optionId : FK -> Option.id
- productId : FK -> Product.id
- quantity : 옵션 갯수
- createDate : 생성 날짜
- updateDate : 수정 날짜
고민 거리
- Option에 있는 주문 번호를 조회해서 가져오는 것보다는 이미 가지고 있는게 좋을거 같은데?
질문
- TypeORM을 쓰면 엔티티를 전체를 바로 참조 가능한데, 내부적으로는 pk를 자동으 fk로 변경하는거였음
- 이래서, 베이직한 것을 알아야 하는 구나
관련 글
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'프로젝트 > 카카오 테크 캠퍼스' 카테고리의 다른 글
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 (0) | 2023.07.03 |
---|---|
🐥 카카오테크캠퍼스 - 2단계 1주차 Entity 최종 설계 (0) | 2023.06.29 |
🐥 카카오테크캠퍼스 - 2단계 1주차 Entity 세부 설계 (0) | 2023.06.28 |
🐥 카카오테크캠퍼스 - 2단계 1주차 과제 분석 (0) | 2023.06.27 |
🐥 카카오 테크 캠퍼스 - 노션 캘린더 구글로 마이그레이션하기 (0) | 2023.04.24 |