티스토리 뷰

🐥 카카오테크캠퍼스 - 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