재고 입출고를 관리하기 위해 MySQL에서 창고 관리 시스템의 테이블 구조를 어떻게 설계하나요?
전자상거래의 급속한 발전으로 인해 창고 관리 시스템은 많은 기업에서 없어서는 안될 부분이 되었습니다. 창고 관리 시스템에서 재고의 입출고는 매우 중요한 두 가지 링크입니다. 따라서 재고의 입출고를 관리하기 위해서는 적절한 테이블 구조를 설계하는 것이 중요합니다. 이 글에서는 MySQL에서 창고 관리 시스템의 테이블 구조를 설계하여 재고 입출고를 관리하는 방법을 자세히 소개하고 해당 코드 예제를 제공합니다.
다음은 해당 MySQL 코드 예시입니다.
CREATE TABLE goods ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, price DECIMAL(10, 2) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE inbound ( id INT(11) NOT NULL AUTO_INCREMENT, goods_id INT(11) NOT NULL, quantity INT(11) NOT NULL, inbound_time DATETIME NOT NULL, PRIMARY KEY (id), FOREIGN KEY (goods_id) REFERENCES goods(id) ); CREATE TABLE outbound ( id INT(11) NOT NULL AUTO_INCREMENT, goods_id INT(11) NOT NULL, quantity INT(11) NOT NULL, outbound_time DATETIME NOT NULL, PRIMARY KEY (id), FOREIGN KEY (goods_id) REFERENCES goods(id) );
재고 조회
재고 관리를 위해서는 재고 수량을 자주 조회해야 합니다. 이를 위해 다음 SQL 쿼리 문을 사용할 수 있습니다.
SELECT g.name, SUM(i.quantity) - SUM(o.quantity) AS stock FROM goods g LEFT JOIN inbound i ON g.id = i.goods_id LEFT JOIN outbound o ON g.id = o.goods_id GROUP BY g.id;
이 SQL 문은 각 제품의 이름과 해당 재고 수량을 반환합니다.
창고 운영
상품이 창고에 들어갈 때, 창고 테이블에 기록을 삽입해야 합니다. 다음은 창고 기록을 삽입하는 SQL 문 예제입니다.
INSERT INTO inbound (goods_id, quantity, inbound_time) VALUES (1, 10, NOW());
위 SQL 문은 상품 번호 1인 상품 10개를 창고에 넣고 현재 시간을 창고 시간으로 기록합니다.
아웃바운드 작업
상품이 창고에서 출고되면 아웃바운드 테이블에 기록을 삽입하는 동시에 재고 수량을 업데이트해야 합니다. 다음은 아웃바운드 기록을 삽입하고 재고 수량을 업데이트하는 SQL 문의 예입니다.
INSERT INTO outbound (goods_id, quantity, outbound_time) VALUES (1, 5, NOW()); UPDATE goods SET quantity = quantity - 5 WHERE id = 1;
위 SQL 문은 상품 번호 1이 포함된 5개의 상품을 아웃바운드하고 현재 시간을 아웃바운드 시간으로 기록합니다. 동시에 재고 수량도 그에 따라 5개씩 감소합니다.
위 내용은 재고 입출고를 관리하기 위해 MySQL에서 창고 관리 시스템의 테이블 구조를 어떻게 설계합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!