入库时记录入库了多少商品数量,与采购状态问题?

来源:4-19 设计采购与入库数据表

CEO_ZKF

2022-05-29

老师好,下面是梳理的情况:

如果采购状态未完成情况,也就是入库时候出现,如果供应商本应根据采购单(001)中的采购数量送100台手机,但是有50台未能及时补齐,只送了50台,所以本次采购单(001)的状态是未完成,那么允许入库本次采购单的商品50台,在这里是需要记录本次商品入库50吗?因为下次入库前是需要核对本次采购单(001)与上次的入库商品数量是否已满100台,可是这几张表中,并没有入库时记录入库了上次入库了多少商品数量,核对逻辑就无从完成了,那么采购状态就不会完成?

t_purchase 采购表
t_productin 入库记录表
t_productin_purchase 采购与入库商品关联表(是否需要在关联表中加入商品入库数量)

CREATE TABLE t_productin_purchase (
productin_id int(10) UNSIGNED NOT NULL COMMENT ‘入库ID’,
purchase_id int(10) UNSIGNED NOT NULL COMMENT ‘采购ID’,
is_deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT ‘逻辑删除’,
PRIMARY KEY (productin_id, purchase_id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = ‘采购与入库商品关联表’ ROW_FORMAT = Dynamic;

CREATE TABLE t_purchase (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
sku_id int(10) UNSIGNED NOT NULL COMMENT ‘商品ID’,
num int(10) UNSIGNED NOT NULL COMMENT ‘数量’,
warehouse_id int(10) UNSIGNED NOT NULL COMMENT ‘仓库ID’,
in_price decimal(10, 2) UNSIGNED NOT NULL COMMENT ‘采购价格’,
out_price decimal(10, 2) UNSIGNED NULL DEFAULT NULL COMMENT ‘建议零售价’,
buyer_id int(10) UNSIGNED NOT NULL COMMENT ‘采购员ID’,
status tinyint(3) UNSIGNED NOT NULL COMMENT ‘状态:1未完成,2已完成’,
create_time timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘添加时间’,
is_deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT ‘逻辑删除’,
PRIMARY KEY (id) USING BTREE,
INDEX idx_sku_id(sku_id) USING BTREE,
INDEX idx_warehouse_id(warehouse_id) USING BTREE,
INDEX idx_buyer_id(buyer_id) USING BTREE,
INDEX idx_status(status) USING BTREE,
INDEX idx_create_time(create_time) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = ‘采购表’ ROW_FORMAT = Dynamic;

CREATE TABLE t_productin (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
storekeeper_id int(10) UNSIGNED NOT NULL COMMENT ‘保管员ID’,
amount decimal(15, 2) UNSIGNED NOT NULL COMMENT ‘总金额’,
supplier_id int(10) UNSIGNED NOT NULL COMMENT ‘供应商ID’,
payment decimal(15, 2) UNSIGNED NOT NULL COMMENT ‘实付金额’,
payment_type tinyint(3) UNSIGNED NOT NULL COMMENT ‘支付方式’,
invoice tinyint(1) NOT NULL COMMENT ‘是否开票’,
remark varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT ‘备注’,
create_time timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘添加时间’,
is_deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT ‘逻辑删除’,
PRIMARY KEY (id) USING BTREE,
INDEX idx_storekeeper_id(storekeeper_id) USING BTREE,
INDEX idx_supplier_id(supplier_id) USING BTREE,
INDEX idx_payment_type(payment_type) USING BTREE,
INDEX idx_create_time(create_time) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = ‘入库信息表’ ROW_FORMAT = Dynamic;

写回答

1回答

神思者

2022-05-30

这个是用程序或者SQL语句计算的,不需要在数据库里面记录

0
0

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程