kotlin-serverside-study / kitchen-force

0 stars 3 forks source link

[feature] 메뉴 생성 #38

Closed jongeuni closed 2 years ago

jongeuni commented 2 years ago

1 개 이상의 등록된 상품으로 메뉴를 등록할 수 있다.

해당되는 다른 요구사항: 메뉴는 특정 메뉴 그룹에 속해야 한다. 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다. (이건 구현할지 말지 생각좀)

메뉴 숨기기 기능을 하고 싶어서 보니 메뉴 생성이 없는 걸 발견했습니다.

제가 생각을 해 본 결과 메뉴그룹을 음료, 식사...같은 걸로 이해를 했는데요. 아직 도메인이 헷갈리는 부분이 있네요.

요구사항을 보면 1 개 이상의 등록된 상품으로 메뉴를 등록할 수 있다,인데 저의 생각대로라면 상품의 아이디를 받고, 상품과 연관관계를 가져야 하는데 (다른 요구사항이 있기 때문: 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다.) 저희가 참고하는 레포지토리 코드를 봤을 때 상품 아이디를 받지 않아서... 요구사항이 이게 맞는지도 헷갈립니다. -> (상품을 안 가져오는 줄 알았는데 코드를 다시 봤더니 request.getMenuProducts(); 이렇게 해서 가져오네요. )

... 그러나 일단 해보겠습니다.

humanitas03 commented 2 years ago

제가 생각을 해 본 결과 메뉴그룹을 음료, 식사...같은 걸로 이해를 했는데요. 아직 도메인이 헷갈리는 부분이 있네요. 요구사항을 보면 1 개 이상의 등록된 상품으로 메뉴를 등록할 수 있다,인데 저의 생각대로라면 상품의 아이디를 받고, 상품과 연관관계를 가져야 하는데 (다른 요구사항이 있기 때문: 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다.) 저희가 참고하는 레포지토리 코드를 봤을 때 상품 아이디를 받지 않아서... 요구사항이 이게 맞는지도 헷갈립니다.

@joungeun Entity 연관관계 매핑이 Jpa 베이스로 되어 있어서 Entity 클래스만 보고 물리적인 테이블 매핑을 유추하기 힘들수도 있습니다.

local로 boot app 실행 시 아래와 같은 Table이 생성되는 DDL이 발생합니다. Menu와 Product를 M:N 다대다 관계로 가져가기 위해 중간에 조인 테이블로 Menu_product를 두었으므로 참고해주시면 될 것 같습니다.

image

https://dbdiagram.io/d/6204b17085022f4ee56c51e2

jongeuni commented 2 years ago

클라이언트 측 요청 보내는 방법입니다

{
    "name":"자장면 세트",
    "products":{
        "1":2,
        "2":1
    },
    "price":15000
}