【发布时间】:2018-09-09 18:40:27
【问题描述】:
在为电子商务商店实施仓库管理系统时,我正在尝试为仓库工作人员创建一个拣货清单,他们将在仓库中四处走动,从不同货架上挑选订单中的产品。
一种产品可以放在不同的货架上,每个货架上可以有许多相同类型的产品。
如果一个订单中有许多相同的产品,有时拣货员必须从多个货架中挑选才能获得订单中的所有商品。
为了进一步使事情变得更棘手,有时产品也会缺货。
我的数据模型如下所示(简化):
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 中执行此操作。
感谢您的帮助!
【问题讨论】:
标签: postgresql e-commerce