주문을 여러 부분으로 나누려고합니다. 1, 3, 20. 상관 없어요. 그리고 각 부분은 다른 창고에서 제품을 가져 오는 것을 의미합니다.문제 멀티 파트 (다중 창고) 주문 선택
나는 이것을 시도 :
CREATE TABLE w_orders (
order_id int,
customer_id int,
PRIMARY KEY(order_id)
);
CREATE TABLE w_order_items (
order_item_id int,
order_id int,
warehouse_id int,
product_id int,
quantity int,
base_price int,
PRIMARY KEY(order_item_id)
);
CREATE TABLE w_order_parts (
order_part_id int,
order_id int,
part int,
warehouse_id int,
shipped int,
PRIMARY KEY(order_part_id)
);
w_orders
는 고유 주문 ID가 할당되는 경우이며, 클라이언트가 어디에 할당됩니다.
w_order_items
은 여러 창고에서 주문한 모든 제품입니다.
그리고 w_order_parts
은 내가 가지고있는 문제입니다. 이 테이블이 필요합니다. 왜냐하면 여기서,이 특정 창고의 주문이 배송됨을 나타 내기 때문입니다.
I는이처럼 보이도록 PHP로 처리 할 필요가 있음을 이해 :
이
내가 달성하기 위해 노력하고있는 구조입니다. 나는 여기에 관해 묻지 않고있다. 데이터베이스 설계와 선택 만하면됩니다.내가 쿼리하려고하면 동일한 복수형을 얻게됩니다. w_order_items
.
SELECT
w_orders.order_id,
w_orders.customer_id,
w_order_items.order_item_id,
w_order_items.order_id,
w_order_items.warehouse_id,
w_order_items.product_id,
w_order_items.quantity,
w_order_items.base_price,
w_order_parts.order_part_id,
w_order_parts.order_id,
w_order_parts.part,
w_order_parts.warehouse_id,
w_order_parts.shipped
FROM
w_orders
LEFT JOIN w_order_items
ON w_orders.order_id = w_order_items.order_id
LEFT JOIN w_order_parts
ON w_orders.order_id = w_order_parts.order_id
WHERE w_orders.order_id = '100'
을 Heres SQL Fiddle Example
에 대한 링크이 내가 달성하기 위해 노력하고 무엇을위한 좋은 테이블 디자인 내가 위의 이미지처럼 제대로 항목을 SELECT
어떻게?
달성하려는 정확한 출력은 일반적으로 프리젠 테이션 레이어 (예 : PHP)에서 가장 잘 처리됩니다. MySQL을 어떻게 사용하고 있습니까? –
@TimBiegeleisen 그래, 알아. 내가 디자인과 MySQL 선택을 고수했기 때문에 거기에서 얻지 못했습니다. 위의 이미지는 끝나면 어떻게 작동하는지 시각 보조 기능을 제공하기위한 것입니다. – Borsn