작성
·
133
0
안녕하세요, 선생님.
강의 감사히 잘 보고 있습니다.
주문수량에 따라 재고량 반영다는 기획일시 테이블 분리는 어떻게 할 수 있을까요?
(다른 질문에 답변 올려주신 것 봤는데 직접 하려니 안되서요)
현업에서 일반적으로 매입도 존재할텐데 이 경우까지 포함한다면 재고에 대한 테이블 구성은 어떻게 되는지요?
감사합니다.
답변 2
0
안녕하세요 cndcjd2qn님! 강의 잘 들어주셔서 감사합니다ㅎㅎㅎ
질문해주신 내용에 대해 하나씩 답변 드려볼게요!
말씀해주신 기획일 때에는 재고
(stocks
) 테이블을 따로 분리하지 않고, 상품
테이블에서 재고량
컬럼이 있는 것만으로도 충분해보입니다! 여기서 혹시 테이블을 분리해야 한다고 생각하시게 된 이유는 어떻게 되실까요~??
매입이 있을 수도 있다는 뜻은 재고량이 늘어날 수도 있음을 말씀하시는 걸까요~?? 아니면 매입에 대한 정보를 추가로 저장해야 한다고 생각하신걸까요~??
이해했습니다!! 말씀해주신 생각의 방식대로 데이터 중복이라고 생각하실 수도 있습니다. 하지만 재고량과 주문수량 데이터는 동시에 수정이 일어나지 않는 경우가 있어서 가짜 중복이라고 판단합니다. 예를 들어, 해당 상품의 재고가 추가로 입고되어 재고량만 늘어난다고 했을 때, 재고량은 증가하지만 주문 수량에는 영향을 미치지 않습니다. 이처럼 동시에 수정이 일어나지 않는 경우가 있다면 가짜 중복이라고 봐야합니다:)
재고
테이블을 따로 분리하지 않을 경우, 추가로 매입이 일어날 경우 상품
테이블의 재고량
컬럼의 값만 수정하면 됩니다. 하지만 만약 기획 상 언제 어느 정도의 재고량이 들어왔는 지 history를 기록으로 남기고 싶다면, 매입 history
테이블을 따로 만드셔서 관리하셔야 합니다!
이 부분은 한 번 설계를 직접 시도해보시면서 시행착오를 겪어보시면 너무 좋은 경험이 될 것 같네요! 조금 틀려도 괜찮으니 한 번 설계를 시도해보시고 막히시거나 맞는 지 확인하고 싶으시다면 댓글 한 번 더 달아주세요~~~
0
안녕하세요, 인프런 AI 인턴입니다. cndcjd2qn님.
주문 수량에 따라 재고량을 반영하는 데이터베이스 설계에 대해 질문 주셨네요. 기존의 데이터베이스 설계 관점에서 주문 및 재고 관리를 효율적으로 처리하기 위해 테이블을 어떻게 구분해야 할지 알아보도록 하겠습니다.
주문 수량과 재고 반영의 기본 설계:
Products 테이블: 각 제품의 기본 정보와 함께 현재 재고 수량을 저장합니다. 재고 수량은 실제로 해당 제품의 입출고 현황을 반영하는 중요한 데이터입니다.
Orders와 Ordered Products 테이블: 각각의 주문과 주문 세부사항을 저장합니다. 사용자가 주문을 확정하면, Ordered Products 테이블에서 주문 수량이 결정되고, 이에 따라 자동으로 Products 테이블의 재고 수량을 차감하는 트리거 또는 비즈니스 로직을 활용할 수 있습니다.
Stocks 히스토리 테이블: 재고의 변동(입고, 출고)을 기록하기 위해 별도의 히스토리 테이블을 생성하기도 합니다. 이 테이블은 입고 시 추가된 수량 및 출고 시 차감된 수량과 그 시점을 추적하는 데 유용합니다.
매입을 포함한 재고 관리:
현업에서 매입도 고려해야 한다면, 매입과 관련된 별도의 테이블을 두어 각 매입 거래를 기록하고, 매입 시 재고량을 증가시키는 방식으로 설계할 수 있습니다. 예를 들어:
Purchase Orders 테이블: 매입 주문 정보 저장 (예: 공급자, 매입 날짜, 매입 품목 등).
Purchased Products 테이블: 각 매입 주문에 포함된 상세 품목 정보 및 수량 등을 저장합니다.
이러한 구조에서 매입 품목이 입고되면 Stocks 히스토리 테이블에 새로운 입고 기록을 작성하고, 그 수량만큼 Products 테이블의 재고를 증가시킵니다.
기존에 유사한 문제가 논의된 링크를 통해 더욱 구체적인 실습 및 예시를 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
늦어서 죄송합니다ㅠ
1. 만약 실제 주문 발생할시 주문상품(ordered_products) 테이블에도 주문수량 데이터가 삽입되고 동시에 상품(products) 테이블의 재고량의 데이터도 수정이 발생하니 곧 데이터 중복이기때문에 분리하여야 되지 않을까 생각했었습니다~
예를 들어 새로이 주문상품으로 락스가 들어가게 되면 락스의 주문수량으로 데이터가 들어감과 동시에 상품 테이블의 락스 재고량은 그 주문수량만큼 줄어야 되니깐요~
2. 매입은 재고량이 늘어난다는 것만 뜻합니다~