[练手]MySQL进销存系统

本文介绍了使用MySQL构建进销存系统的过程,详细讲解了如何运用触发器和存储过程实现药品库存自动管理、销售收款、会员升级等功能。包括进货、销售数量的自动增减,总价自动计算,以及结账状态判断等关键操作。
摘要由CSDN通过智能技术生成

这是数据库练手,主要就是存储过程和触发器的使用吧
Tip:如选择性阅读请配合右上角的目录食用更佳~

在这里插入图片描述

前言

需求

1.实现药品信息的管理,入库和出库时必须能自动修改库存(使用触发器实现);
2.定义视图查询各仓库中存放的药品信息和数量;
3.实现销售收款,¬收完款后要自动修改销售单的结账标记(结清为‘Y’,未结清为‘N’)(使用触发器实现);
4.定义存储过 程查询日销售明细(包括销售的药品、数量、金额);
5.定义存储过程生成收款员的收款日报(收款员、金额);
6.管理药品的计量单位只能是“瓶”、“袋”,“支”;
7.销售时每一个销售单,可以销售多种药品,并能根据销售的各种药品的数量和单价计算销售小计和总计金额
更新:
删除-新增、修改’药品同步进货触发器’
修改-‘实收金额’ 计算触发器
修改-E-R图
修改-‘结账标记’ 判断触发器
新增-满额自动会员升级 触发器 ‘insert_升级会员’,‘update_升级会员’
新增-自动计算找零 触发器 ‘insert_应找金额’,‘update_应找金额’

已经实现的功能

1.进货数量增加,库存数量自动增加
2.销售数量增加,库存数量自动减少
3.进货增加新单号,总价自动计算
进货修改,总价自动计算
4.销售增加新单号,总价自动计算
销售修改,总价自动计算
5.总销售增加新单号,自动计算折扣,生成实收金额
总销售修改,自动计算折扣,生成实收金额
6.总销售增加新单号,自动对比实收金额和已收金额,判断是否结账
总销售修改,自动对比实收金额和已收金额,判断是否结账
8.总销售增加新单号,自动计算应找金额
总销售修改,自动计算应找金额
9.总销售增加新单号,自动对比用户表是否VIP或普通用户
10.总销售增加新单号,总价自动同步销售总价
总销售修改,总价自动同步销售总价
11.普通用户消费达到10000元,自动升级VIP,本次以及往后自动打折


流程图

在这里插入图片描述


E-R图

在这里插入图片描述


关系模型

厂家(厂家编号,厂家名称)
进货(进货单号,药品编号,数量,单价,总价,时间,厂家编号,采购员编号)
库存(库存编号,药品编号,药品数量,计量单位,备注)
销售(销售单号,药品编号,单价,数量,总价,大单号,备注)
药品(药品编号,药品名称,单价,备注)
用户(用户编号,用户姓名,电话,地址,备注)
员工(员工编号,员工姓名,职位,电话,备注)
总销售(大单号,用户编号,总价,折扣,实收金额,已收金额,应找金额,结账标记,销售员工编号,日期)


数据字典

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

在这里插入图片描述


建表语句

Create Table

CREATE TABLE `厂家` (
 `厂家编号` int(20) NOT NULL,
 `厂家名称` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`厂家编号`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
Create Table

CREATE TABLE `进货` (
 `进货单号` int(10) NOT NULL AUTO_INCREMENT,
 `药品编号` int(10) DEFAULT NULL,
 `数量` decimal(10,0) DEFAULT NULL,
 `单价` decimal(10,0) DEFAULT NULL,
 `总价` decimal(10,2) DEFAULT NULL,
 `时间` date DEFAULT NULL,
 `厂家` decimal(10,0) DEFAULT NULL,
 `采购员编号` int(11) DEFAULT NULL,
 PRIMARY KEY (`进货单号`),
 KEY `进货_药品_fk` (`药品编号`),
 CONSTRAINT `进货_药品_fk` FOREIGN KEY (`药品编号`) REFERENCES `药品` (`药品编号`)
) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值