数据库课程设计——某商店进销存管理系统(附Java源码与课程设计报告)

本文档详细介绍了如何设计一个包含商品类别、供货商和业务员信息管理的物料管理系统,涉及商品信息管理、仓库与库存操作,如入库、出库及转仓的自动更新,以及使用触发器实现库存调整。系统还包含统计功能和库存预警规则,以及对商品单位的限定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面都是我在优快云发布的文章好吧。

数据库课程设计——某工厂的物料管理系统(附Java源码与课程设计报告)
数据库课程设计——某商店进销存管理系统(附Java源码与课程设计报告)
数据库课程设计——某煤气公司送气管理系统(附课设报告)
数据库课程设计——基于JavaEE的企业进销存系统(附Java源码与课程设计报告)
Java课程设计——哈夫曼编码译码系统的Java语言实现
C语言课程设计——班级成绩管理系统(附课设报告)
C语言课程设计——排班系统 DFS解决(附课设报告)

O、1277750893 O、

题目:

实现商品类别、供货商、业务员信息管理;
实现商品信息、仓库信息管理、仓库商品管理;
实现商品验收入库、商品销售出库管理,入库和出库时自动修改对应商品的总库存和分库库存量(用触发器实现);
实现转仓管理,转仓时自动修改转出仓库和转入仓库对应商品的数量-(用触发器实现)
创建存储过程统计指定时间段内各种商品的进货数量和销售数量;设商品的单位只能是‘只’、‘件’、 箱’, 创建规则进行限制;
创建表间关系。

系统功能分析:

在这里插入图片描述

界面展示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

xinglibao383:

课程设计报告:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据字典:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库模型:

在这里插入图片描述

数据库源码

/*
 Navicat Premium Data Transfer

 Source Server         : mysql57
 Source Server Type    : MySQL
 Source Server Version : 50735
 Source Host           : localhost:13306
 Source Schema         : shop_psi

 Target Server Type    : MySQL
 Target Server Version : 50735
 File Encoding         : 65001

 Date: 09/06/2022 18:58:13
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for psi_bill
-- ----------------------------
DROP TABLE IF EXISTS `psi_bill`;
CREATE TABLE `psi_bill`  (
  `bill_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '小票单号',
  `staff_id` int(11) NULL DEFAULT NULL COMMENT '员工编号',
  `vip_id` int(11) NULL DEFAULT NULL COMMENT '会员编号',
  `bill_total` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '销售总额',
  `bill_paid` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '实收金额',
  `bill_change` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '找零',
  `bill_date` date NULL DEFAULT NULL COMMENT '日期',
  `bill_socre` int(11) NULL DEFAULT 0 COMMENT '积分',
  PRIMARY KEY (`bill_id`) USING BTREE,
  INDEX `f1`(`staff_id`) USING BTREE,
  INDEX `f2`(`vip_id`) USING BTREE,
  CONSTRAINT `f1` FOREIGN KEY (`staff_id`) REFERENCES `psi_staff` (`staff_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f2` FOREIGN KEY (`vip_id`) REFERENCES `psi_vip` (`vip_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_goods
-- ----------------------------
DROP TABLE IF EXISTS `psi_goods`;
CREATE TABLE `psi_goods`  (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
  `goods_cat` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类别',
  `goods_unit` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位',
  `goods_mfd` date NULL DEFAULT NULL COMMENT '生产日期',
  `goods_exp` date NULL DEFAULT NULL COMMENT '保质日期',
  `goods_pd` date NULL DEFAULT NULL COMMENT '进货日期',
  `goods_pprice` decimal(10, 2) NULL DEFAULT NULL COMMENT '进价',
  `goods_stock` int(11) NOT NULL DEFAULT 0 COMMENT '总库存量',
  `goods_insuf` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '商品库存不足' COMMENT '库存不足预警',
  `goods_mature` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '商品未临期' COMMENT '临期预警',
  PRIMARY KEY (`goods_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_goods_whse
-- ----------------------------
DROP TABLE IF EXISTS `psi_goods_whse`;
CREATE TABLE `psi_goods_whse`  (
  `goods_id` int(11) NOT NULL COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `whse_id` int(11) NOT NULL COMMENT '仓库编号',
  `whse_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '仓库名称',
  `stock` int(11) NULL DEFAULT 0 COMMENT '存储数量',
  PRIMARY KEY (`goods_id`, `whse_id`) USING BTREE,
  INDEX `f6`(`whse_id`) USING BTREE,
  CONSTRAINT `f5` FOREIGN KEY (`goods_id`) REFERENCES `psi_goods` (`goods_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f6` FOREIGN KEY (`whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_instore
-- ----------------------------
DROP TABLE IF EXISTS `psi_instore`;
CREATE TABLE `psi_instore`  (
  `supplier_id` int(11) NOT NULL COMMENT '供应商编号',
  `supplier_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '供应商名称',
  `goods_id` int(11) NOT NULL COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `whse_id` int(11) NOT NULL COMMENT '仓库编号',
  `in_num` int(11) NOT NULL DEFAULT 0 COMMENT '入库数量',
  `in_price` decimal(10, 2) NOT NULL COMMENT '入库单价',
  `instore_date` date NULL DEFAULT NULL COMMENT '入库时间',
  INDEX `f7`(`supplier_id`) USING BTREE,
  INDEX `f8`(`goods_id`) USING BTREE,
  INDEX `f9`(`whse_id`) USING BTREE,
  CONSTRAINT `f7` FOREIGN KEY (`supplier_id`) REFERENCES `psi_supplier` (`supplier_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f8` FOREIGN KEY (`goods_id`) REFERENCES `psi_goods` (`goods_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f9` FOREIGN KEY (`whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_outstore
-- ----------------------------
DROP TABLE IF EXISTS `psi_outstore`;
CREATE TABLE `psi_outstore`  (
  `bill_id` int(11) NOT NULL COMMENT '小票单号',
  `goods_id` int(11) NOT NULL COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `whse_id` int(11) NOT NULL COMMENT '仓库编号',
  `outstore_num` int(11) NOT NULL COMMENT '销售出库数量',
  `outstore_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '销售价格',
  `outstore_date` datetime(0) NULL DEFAULT NULL COMMENT '销售出库日期',
  INDEX `f10`(`bill_id`) USING BTREE,
  INDEX `f11`(`goods_id`) USING BTREE,
  INDEX `f12`(`whse_id`) USING BTREE,
  CONSTRAINT `f10` FOREIGN KEY (`bill_id`) REFERENCES `psi_bill` (`bill_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f11` FOREIGN KEY (`goods_id`) REFERENCES `psi_goods` (`goods_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f12` FOREIGN KEY (`whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_re
-- ----------------------------
DROP TABLE IF EXISTS `psi_re`;
CREATE TABLE `psi_re`  (
  `re_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '退换货记录编号',
  `re_rtn_exc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退/换货',
  `bill_id` int(11) NOT NULL COMMENT '小票单号',
  `re_num` int(11) NOT NULL COMMENT '退换数量',
  `goods_id` int(11) NOT NULL COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `whse_id` int(11) NULL DEFAULT NULL COMMENT '仓库编号',
  `re_date` date NULL DEFAULT NULL COMMENT '退换日期',
  `re_total` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '退款金额',
  PRIMARY KEY (`re_id`) USING BTREE,
  INDEX `f13`(`bill_id`) USING BTREE,
  INDEX `f14`(`goods_id`) USING BTREE,
  INDEX `f15`(`whse_id`) USING BTREE,
  CONSTRAINT `f13` FOREIGN KEY (`bill_id`) REFERENCES `psi_bill` (`bill_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f14` FOREIGN KEY (`goods_id`) REFERENCES `psi_goods` (`goods_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f15` FOREIGN KEY (`whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_staff
-- ----------------------------
DROP TABLE IF EXISTS `psi_staff`;
CREATE TABLE `psi_staff`  (
  `staff_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '员工编号',
  `staff_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `staff_bd` date NULL DEFAULT NULL COMMENT '出生日期',
  `staff_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
  `staff_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '家庭住址',
  `staff_sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
  PRIMARY KEY (`staff_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_supplier
-- ----------------------------
DROP TABLE IF EXISTS `psi_supplier`;
CREATE TABLE `psi_supplier`  (
  `supplier_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '供货商编号',
  `supplier_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
  `supplier_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
  `supplier_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所在地',
  PRIMARY KEY (`supplier_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_trf
-- ----------------------------
DROP TABLE IF EXISTS `psi_trf`;
CREATE TABLE `psi_trf`  (
  `goods_id` int(11) NOT NULL COMMENT '商品编号',
  `goods_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `from_whse_id` int(11) NOT NULL COMMENT '转出仓库编号',
  `to_whse_id` int(11) NOT NULL COMMENT '转入仓库编号',
  `trf_num` int(11) NOT NULL COMMENT '转移商品数量',
  `trf_date` date NULL DEFAULT NULL COMMENT '转移时间',
  INDEX `f16`(`goods_id`) USING BTREE,
  INDEX `f17`(`from_whse_id`) USING BTREE,
  INDEX `f18`(`to_whse_id`) USING BTREE,
  CONSTRAINT `f16` FOREIGN KEY (`goods_id`) REFERENCES `psi_goods` (`goods_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f17` FOREIGN KEY (`from_whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `f18` FOREIGN KEY (`to_whse_id`) REFERENCES `psi_whse` (`whse_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_vip
-- ----------------------------
DROP TABLE IF EXISTS `psi_vip`;
CREATE TABLE `psi_vip`  (
  `vip_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员编号',
  `vip_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `vip_sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
  `vip_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '家庭住址',
  `vip_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
  `vip_score` int(11) NULL DEFAULT 0 COMMENT '积分',
  PRIMARY KEY (`vip_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for psi_whse
-- ----------------------------
DROP TABLE IF EXISTS `psi_whse`;
CREATE TABLE `psi_whse`  (
  `whse_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '仓库编号',
  `whse_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '仓库名称',
  `whse_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '仓库联系方式',
  `whse_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '仓库地址',
  PRIMARY KEY (`whse_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Procedure structure for gagaga
-- ----------------------------
DROP PROCEDURE IF EXISTS `gagaga`;
delimiter ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `gagaga`(
	in begindate date,
	in enddate date
)
begin
	select psi_goods.goods_id as '商品编号', sum(in_num) as '进货量', sum(outstore_num) as '销售量'
	from psi_goods, psi_instore, psi_outstore	
	where instore_date >= begindate and instore_date <= enddate and outstore_date >= begindate and outstore_date <= enddate and psi_goods.goods_id = psi_instore.goods_id and psi_goods.goods_id = psi_outstore.goods_id
	group by psi_goods.goods_id;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_bill
-- ----------------------------
DROP TRIGGER IF EXISTS `t12`;
delimiter ;;
CREATE TRIGGER `t12` BEFORE UPDATE ON `psi_bill` FOR EACH ROW begin
	set new.bill_socre = new.bill_total;
	update psi_vip set vip_score = vip_score + new.bill_total where vip_id = new.vip_id;
	set new.bill_change = new.bill_paid - new.bill_total;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_goods
-- ----------------------------
DROP TRIGGER IF EXISTS `t10`;
delimiter ;;
CREATE TRIGGER `t10` BEFORE INSERT ON `psi_goods` FOR EACH ROW begin
	if new.goods_stock > 50 then
		set new.goods_insuf = '商品库存充足';
	else
		set new.goods_insuf = '商品库存不足';
	end if;
	
	if now() > new.goods_exp then
		set new.goods_mature = '商品临期';
	else
		set new.goods_insuf = '商品未临期';
	end if;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_goods
-- ----------------------------
DROP TRIGGER IF EXISTS `t9`;
delimiter ;;
CREATE TRIGGER `t9` BEFORE UPDATE ON `psi_goods` FOR EACH ROW begin
	if new.goods_stock > 50 then
		set new.goods_insuf = '商品库存充足';
	else
		set new.goods_insuf = '商品库存不足';
	end if;
	
	if now() > new.goods_exp then
		set new.goods_mature = '商品临期';
	else
		set new.goods_insuf = '商品未临期';
	end if;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_goods_whse
-- ----------------------------
DROP TRIGGER IF EXISTS `t2`;
delimiter ;;
CREATE TRIGGER `t2` BEFORE INSERT ON `psi_goods_whse` FOR EACH ROW begin
	set new.goods_name = (select goods_name from psi_goods where goods_id = new.goods_id);
	set new.whse_name = (select whse_name from psi_whse where whse_id = new.whse_id);
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_goods_whse
-- ----------------------------
DROP TRIGGER IF EXISTS `t8`;
delimiter ;;
CREATE TRIGGER `t8` AFTER UPDATE ON `psi_goods_whse` FOR EACH ROW begin
	update psi_goods set goods_stock = goods_stock + (new.stock - old.stock) where goods_id = new.goods_id;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_instore
-- ----------------------------
DROP TRIGGER IF EXISTS `t3`;
delimiter ;;
CREATE TRIGGER `t3` BEFORE INSERT ON `psi_instore` FOR EACH ROW begin
	set new.goods_name = (select goods_name from psi_goods where goods_id = new.goods_id);
	set new.supplier_name = (select supplier_name from psi_supplier where supplier_id = new.supplier_id);
	set new.instore_date = now();
	update psi_goods set goods_pd = now() where goods_id = new.goods_id;
	update psi_goods set goods_pprice = new.in_price where goods_id = new.goods_id;
	if (select goods_id from psi_goods_whse where goods_id = new.goods_id and whse_id = new.whse_id) is null then
		insert into psi_goods_whse(goods_id, whse_id, stock) VALUES(new.goods_id, new.whse_id, new.in_num);
	else
		update psi_goods_whse set stock = stock + new.in_num where goods_id = new.goods_id and whse_id = new.whse_id;
	end if;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_outstore
-- ----------------------------
DROP TRIGGER IF EXISTS `t4`;
delimiter ;;
CREATE TRIGGER `t4` BEFORE INSERT ON `psi_outstore` FOR EACH ROW begin
	set new.goods_name = (select goods_name from psi_goods where goods_id = new.goods_id);
	set new.outstore_price = (select goods_pprice from psi_goods where goods_id = new.goods_id) * 1.2;
	set new.outstore_date = (select bill_date from psi_bill where bill_id = new.bill_id);
	update psi_bill set bill_total = bill_total + new.outstore_price * new.outstore_num where bill_id = new.bill_id;
	set @selected_whse_id = (select whse_id from psi_goods_whse where goods_id = new.goods_id and stock > new.outstore_num limit 1);
	update psi_goods_whse set stock = stock - new.outstore_num where goods_id = new.goods_id and whse_id = @selected_whse_id;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_re
-- ----------------------------
DROP TRIGGER IF EXISTS `t5`;
delimiter ;;
CREATE TRIGGER `t5` BEFORE INSERT ON `psi_re` FOR EACH ROW begin
	set new.goods_name = (select goods_name from psi_goods where goods_id = new.goods_id);
	set new.re_date = now();
	if new.re_rtn_exc = '1' then
		update psi_goods_whse set stock = stock + new.re_num where goods_id = new.goods_id and whse_id = new.whse_id;
		set new.re_total = (new.re_num * (select goods_pprice from psi_goods where goods_id = new.goods_id) * 1.2);
	end if;
end
;;
delimiter ;

-- ----------------------------
-- Triggers structure for table psi_trf
-- ----------------------------
DROP TRIGGER IF EXISTS `t6`;
delimiter ;;
CREATE TRIGGER `t6` BEFORE INSERT ON `psi_trf` FOR EACH ROW begin
	set new.goods_name = (select goods_name from psi_goods where goods_id = new.goods_id);
	set new.trf_date = now();
	update psi_goods_whse set stock = stock + new.trf_num where goods_id = new.goods_id and whse_id = new.to_whse_id;
	update psi_goods_whse set stock = stock - new.trf_num where goods_id = new.goods_id and whse_id = new.from_whse_id;
end
;;
delimiter ;

SET FOREIGN_KEY_CHECKS = 1;

商品:商品编号、商品名称、商品单价、生产日期、保质期、商品重量、商品规格 供应商:应商名称、供应商地址、供应商帐号、供应商传真、供应商电话、交货日期、订单号 进销存:库存号、现有库存、最高库存、最低库存、盈亏数量、联系人 (1)针对商店进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:商品按类管理,所以需要有一商品类型信息。如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。需要记录供应商品信息。在涉及商品数量的地方,需要知道商品的库存地方。商品销售信息单中要包含登记商品销售数量、单价等信息。在进货信息中要包含商品供应商等信息。商品报损要有报损原因。进货、销售、报损操作要有相应信息管理员。只有管理员登录之后才可以使用系统。默认的管理员不可以删除。进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。当进行进货、销售和报损操作后,能相应更新库存。 (2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:商品类型信息,包括数据项有:商品信息,包括的数据项有:商品编号、商品名称、商品的的生产日期、库存量等。商供应商信息,包括供应商号、供应商名称、联系电话等。进货信息,包括进货商品号、数量、规格、单价等。销售信息,包括销售商品、数量、单价等。报损信息,包括报损商品、数量、原因、登记时间等。员工信息,包括员工号、姓名、职称等
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枯木何日可逢春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值