При внедрении системы управления складом для интернет-магазина я пытаюсь создать список комплектации для работников склада, которые будут ходить по складу, собирая товары по заказам с разных полок.
Один тип продукта может быть на разных полках, и на каждой полке может быть много одного и того же типа продукта.
Если в одном заказе много одного и того же товара, сборщику приходится выбирать с нескольких полок, чтобы получить все предметы в заказе.
Чтобы еще больше усложнить задачу, иногдатовара также будет на складе.
Моя модель данных выглядит следующим образом (упрощенно):
CREATE TABLE order_product (
id SERIAL PRIMARY KEY,
product_id integer,
order_id text
);
INSERT INTO "public"."order_product"("id","product_id","order_id")
VALUES
(1,1,'order1'),
(2,1,'order1'),
(3,1,'order1'),
(4,2,'order1'),
(5,2,'order2'),
(6,2,'order2');
CREATE TABLE warehouse_placement (
id SERIAL PRIMARY KEY,
product_id integer,
shelf text,
quantity integer
);
INSERT INTO "public"."warehouse_placement"("id","product_id","shelf","quantity")
VALUES
(1,1,E'A',2),
(2,2,E'B',2),
(3,1,E'C',2);
Возможно ли в postgres создать список выбора инструкций, напримерследующее:
order_id product_id shelf quantity_left_on_shelf
order1 1 A 1
order1 1 A 0
order1 2 B 1
order1 1 C 1
order2 2 B 0
order2 2 NONE null
В настоящее время я делаю это в коде приложения, но это выглядит довольно неуклюже, и почему-то мне кажется, что должен быть способ сделать это непосредственно в SQL.
Спасибо залюбая помощь!