[MySQL]超市购物管理系统

这篇具有很好参考价值的文章主要介绍了[MySQL]超市购物管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

数据库结构

一.逻辑结构设计

1.会员信息表hyxxb

2.货品名称表hpmcb

3.供应商信息表gysxxb

4.收银记录表

5.收银明细表symxb

6.货品库存表

7.扎帐记录表

8.汉字拼音表

 二.索引

1.汉字拼音表索引

 三.视图

1.货品库存数量视图

2.收银明细视图

四.创建函数

 五.创建触发器

 六.创建存储过程

1.货品信息维护HpxxWh存储过程

2.货品信息查询HpxxCx存储过程


数据库结构

[MySQL]超市购物管理系统

一.逻辑结构设计

1.会员信息表hyxxb

会员信息表hyxxb(会员id,姓名、性别、手机号、会员卡号、卡内余额、可用积分、上次消费时间)
DROP TABLE IF EXISTS hyxxb;
CREATE TABLE hyxxb(
hyid INT NOT NULL PRIMARY KEY  COMMENT '会员信息表id',
hyxm VARCHAR(50) COMMENT '会员姓名',
hyxb CHAR(2) COMMENT '会员性别',
hykh VARCHAR(20) COMMENT '会员卡号',
sjhm VARCHAR(20) COMMENT '手机号码',
knye DECIMAL(9,2) COMMENT '卡内余额',
kyjf INT COMMENT '可用积分',
scxfsj DATETIME COMMENT '上次消费时间')CHARSET=utf8;

ALTER TABLE hyxxb AUTO_INCREMENT=1000;

SELECT * FROM hyxxb;
DESC hyxxb;

2.货品名称表hpmcb

2、货品名称表hpmcb(货品id,货品名称,计量单位,货品条码,零售价,促销价,名称缩写(由触发器自行维护),货品状态)
DROP TABLE IF EXISTS hpmcb;
CREATE TABLE hpmcb(
hpid INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '货品id',
hpmc VARCHAR(50) COMMENT '货品名称',
jldw VARCHAR(10) COMMENT '计量单位',
hptm VARCHAR(20) COMMENT '货品条码',
lsj DECIMAL(9,2) COMMENT '零售价',
cxj DECIMAL(9,2) COMMENT '促销价',
mcsx VARCHAR(10) COMMENT '名称缩写',
hpzt TINYINT CHECK (hpzt IN(0,1,2))COMMENT '货品状态')CHARSET=utf8;

SELECT * FROM hpmcb;

INSERT INTO hpmcb VALUES
(9,'可口可乐','瓶','101',3.00,2.50,'kkkl',0),
(10,'百事可乐','瓶','102',3.00,2.50,'bskl',0),
(11,'伊利牛奶','盒','103',5.00,4.50,'ylnn',0),
(12,'农夫山泉','瓶','105',2.00,1.50,'nfsq',0),
(13,'涪陵榨菜','袋','106',1.00,0.80,'flzc',0),
(14,'青岛啤酒','听','107',5.00,4.00,'qdpj',0);

3.供应商信息表gysxxb

供应商信息表gysxxb(供应商id,供应商名称,联系人,联系电话,供应商状态)
DROP TABLE IF EXISTS gysxxb;
CREATE TABLE gysxxb(
gtsid INT NOT NULL PRIMARY KEY COMMENT '供应商id',
gysmc VARCHAR(50) COMMENT '供应商名称',
lxren VARCHAR(50) COMMENT '联系人',
lxdh VARCHAR(50) COMMENT '联系电话',
gyszt TINYINT CHECK (gyszt IN(0,1,2))COMMENT '供应商状态')CHARSET=utf8;

SELECT * FROM gysxxb;

4.收银记录表

收银记录表syjlb(收银id,收银员id,顾客id,收银时间,支付方式,应收金额,实收金额,优惠金额,销售状态(正常 ,已退货),扎帐id)
DROP TABLE IF EXISTS syjlb;
CREATE TABLE syjlb(
syid INT NOT NULL PRIMARY KEY,
syyid INT COMMENT '收银员id',
gkid INT CHECK (gkid=0 OR gkid>=1 AND gkid<=9999 OR gkid>=10000)COMMENT '顾客id',
sysj DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收银时间',
zffs TINYINT CHECK (zffs IN(0,1,2,3))COMMENT '支付方式',
ysje DECIMAL(18,2) COMMENT '应收金额',
ssje DECIMAL(18,2) COMMENT '实收金额',
yhje DECIMAL(18,2) COMMENT '优惠金额',
xszt TINYINT CHECK (xszt IN(0,1))COMMENT '销售状态',
zzid INT COMMENT '扎帐id',
CONSTRAINT fk_syjlb_zzjlb FOREIGN KEY(zzid) REFERENCES zzjlb(zzid))CHARSET=utf8;

INSERT INTO syjlb VALUES
(8,66,0,CURRENT_TIMESTAMP,0,6.00,5.00,1.00,0,5),
(9,66,0,CURRENT_TIMESTAMP,0,12.00,10.00,2.00,0,5);

SELECT * FROM syjlb;

5.收银明细表symxb

收银明细表symxb(收货明细id,收银id,货物id,销售数量,零售价、促销价)
DROP TABLE IF EXISTS symxb;
CREATE TABLE symxb(
mxid INT NOT NULL COMMENT '收银明细id',
syid INT COMMENT '收银id',
hpid INT COMMENT '货品id',
xssl DECIMAL(18,3) COMMENT '销售数量',
dj DECIMAL(9,2) COMMENT '定价',
lsj DECIMAL(9,2) COMMENT '零售价',
CONSTRAINT fk_syjlb_symxb FOREIGN KEY(syid) REFERENCES syjlb(syid),
CONSTRAINT fk_hpmcb_symxb FOREIGN KEY(hpid) REFERENCES hpmcb(Hpid))CHARSET=utf8;

INSERT INTO symxb VALUES
(16,8,9,1.000,2.50,3.00),
(17,8,10,1.000,2.50,3.00),
(19,9,14,1.000,4.00,5.00),
(20,9,11,1.000,4.50,5.00),
(21,9,12,1.000,1.50,2.00);

SELECT * FROM symxb;

6.货品库存表

6、货品库存表hpkcb(库存id,货品id,(当前)库存数量,昨日库存(用于日清),月初库存(用于月结))
DROP TABLE IF EXISTS hpkcb;
CREATE TABLE hpkcb(
kcid INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '库存id',
hpid INT COMMENT '货品id',
kcsl DECIMAL(18,3) COMMENT '库存数量',
zrkc DECIMAL(18,3) COMMENT '昨日库存',
yckc DECIMAL(18,3) COMMENT '月初库存',
CONSTRAINT fk_hpmcb_hpkcb FOREIGN KEY(hpid) REFERENCES hpmcb(hpid))CHARSET=utf8;

SELECT * FROM hpkcb;

7.扎帐记录表

扎帐记录表zzjlb(扎帐id,收银员id,扎帐时间,应收金额(由系统计算),实收金额(由收银员输入),差错原因)
DROP TABLE IF EXISTS zzjlb;
CREATE TABLE zzjlb(
zzid INT NOT NULL PRIMARY KEY COMMENT '扎帐记录表',
syyid INT COMMENT '收银员id',
zzsj DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '扎帐时间',
ysje DECIMAL(18,2) COMMENT '应收金额',
ssje DECIMAL(18,2) COMMENT '实收金额',
ccyy VARCHAR(200) COMMENT '差错原因')CHARSET=utf8;

SELECT * FROM zzjlb;
INSERT INTO zzjlb VALUES
(5,66,CURRENT_TIMESTAMP,15.00,15.00,'本次结账无差错');

8.汉字拼音表

辅助表 汉字拼音表Hzpyb(汉字,简拼,拼音)
DROP TABLE IF EXISTS Hzpyb;
CREATE TABLE `hzpyb` (
  hz VARCHAR(6) COMMENT '汉字',
  jp VARCHAR(3) COMMENT '简拼',
  py VARCHAR(30) COMMENT '拼音'
) ENGINE=INNODB DEFAULT CHARSET=utf8;

SELECT * FROM hzpyb;

 二.索引

1.汉字拼音表索引

CREATE INDEX index_hz ON hzpyb(hz);
CREATE INDEX index_jp ON hzpyb(jp);
CREATE INDEX index_py ON hzpyb(py);
SHOW INDEX FROM hzpyb;

 三.视图

1.货品库存数量视图

[MySQL]超市购物管理系统

CREATE VIEW v_hpkcb
	AS
	SELECT hpkcb.hpid,hpmc,jldw,kcsl
	FROM hpkcb,hpmcb
	WHERE hpmcb.Hpid=hpkcb.hpid;

DESC v_hpkcb;
SELECT * FROM v_hpkcb;

2.收银明细视图

[MySQL]超市购物管理系统文章来源地址https://www.toymoban.com/news/detail-477410.html

CREATE VIEW v_symxb
	AS
	SELECT mxid,syid,hpmc,jldw,xssl,dj,symxb.lsj
	FROM symxb,hpmcb
	WHERE hpmcb.Hpid=symxb.hpid;
	
DESC v_symxb;
SELECT * FROM v_symxb;

四.创建函数

创建PysxCx函数,能够根据输入的汉字,返回其拼音首字母缩写
DROP FUNCTION IF EXISTS pysxcx;
DELIMITER $$
CREATE FUNCTION `pysxcx`(zw VARCHAR(50)) 
RETURNS VARCHAR(10) DETERMINISTIC
BEGIN
	SET @l=CHAR_LENGTH(zw);
	SET @i=1;
	SET @pysx='';
	SET @jp='';
	WHILE @i<=@l DO
		SET @hz=SUBSTRING(zw,@i,1);
		SELECT jp INTO @jp FROM hzpyb WHERE hz=@hz;
		SET @pysx=CONCAT(@pysx,@jp);
		SET @i=@i+1;
	END WHILE;
RETURN @pysx;
END
$$
DELIMITER;
SELECT pysxcx('可口可乐');

 五.创建触发器

对于货品信息表创建触发器,自动维护名称缩写列
DROP TRIGGER IF EXISTS Update_mcsx_before_insert_hpmcb;
DELIMITER $$
CREATE TRIGGER Update_mcsx_before_insert_hpmcb 
BEFORE INSERT ON hpmcb
FOR EACH ROW 
BEGIN
SET new.mcsx=pysxcx(new.hpmc);
END$$
DELIMITER ;

DROP TRIGGER IF EXISTS Update_mcsx_before_update_hpmcb_hpmc;
DELIMITER $$
CREATE TRIGGER Update_mcsx_before_update_hpmcb_hpmc
BEFORE UPDATE ON hpmcb
FOR EACH ROW 
BEGIN
IF(new.hpmc<>old.hpmc)
THEN
SET new.mcsx=pysxcx(new.hpmc);
END IF;
END$$
DELIMITER;

 六.创建存储过程

1.货品信息维护HpxxWh存储过程

创建货品信息维护HpxxWh存储过程,能够实现对货品信息的增删改操作
DROP PROCEDURE IF EXISTS hpxxwh;
DELIMITER $$
CREATE PROCEDURE hpxxwh(
hpid INT,
hpmc VARCHAR(50),
jldw VARCHAR(10),
hptm VARCHAR(20),
lsj DECIMAL(9,2),
cxj DECIMAL(9,2),
hpzt TINYINT)
BEGIN
-- 输入0,增加货品
IF hpid=0 
THEN
INSERT INTO hpmcb(hpmc,hptm,jldw,lsj,cxj,mcsx,hpzt)
VALUES(hpmc,hptm,jldw,lsj,cxj,pysxcx(hpmc),hpzt);
SET @hpid=@@identity;
INSERT INTO hpkcb(hpid,kcsl,zrkc,yckc)
VALUES(@hpid,0,0,0);
-- 输入hpid,修改货品信息
ELSEIF hpid>0
THEN
UPDATE hpmcb SET
hpmcb.hpmc=hpmc,
hpmcb.hptm=hptm,
hpmcb.jldw=jldw,
hpmcb.lsj=lsj,
hpmcb.cxj=cxj,
hpmcb.mcsx=pysxcx(hpmc),
hpmcb.hptm=hptm,
hpmcb.hpzt=hpzt
WHERE hpmcb.hpid=hpid;
-- 输入-hpid,删除指定商品信息
ELSE
	DELETE FROM hpkcb WHERE hpkcb.hpid=-hpid;
	DELETE FROM hpmcb WHERE hpmcb.hpid=-hpid;
END IF;
END$$
DELIMITER;
-- 调用增删改存储过程
CALL hpxxwh(-22,'香蕉','个','001',4.00,2.00,0);
CALL hpxxwh(0,'苹果','个','001',4.00,2.00,0);
CALL hpxxwh(1,'梨','个','001',4.00,2.00,0);

2.货品信息查询HpxxCx存储过程

创建货品信息查询HpxxCx存储过程,能够实现对货品信息的查询操作
DROP PROCEDURE IF EXISTS hpxxcx;
DELIMITER $$
CREATE PROCEDURE hpxxcx(hpid INT)
BEGIN
-- 输入0,查询全部商品
IF hpid=0
THEN
SELECT * FROM hpmcb;
ELSE
-- 输入hpid,查询指定商品
SELECT * FROM hpmcb WHERE hpmcb.hpid=hpid;
END IF;
END $$
DELIMITER;
-- 调用查存储过程
CALL hpxxcx(0);
CALL hpxxcx(20);

到了这里,关于[MySQL]超市购物管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JSP+Servlet+MySql超市管理系统项目源码

    软件名称:超市管理系统(servlet+jsp) 使用对象:学习或了解过 java 基础课程,开始接触 javaWeb 的学生和软件爱好者 源码链接:超市管理系统: 超市管理系统 Sql文件https://pan.baidu.com/s/1BtMM8erQ9E25fQ1j4eHltQ?pwd=8nmj 该超市管理系统,设置了登录权限验证,所有用户除了访问首页浏览商品

    2024年02月09日
    浏览(44)
  • 基于Java+Mysql的超市管理系统(附源码)

    项目下载: gitee下载:https://gitee.com/wusupweilgy/taobao.git 蓝奏云下载:https://wwp.lanzoup.com/i0ZZB0ywnipi 课设报告:https://wwp.lanzoup.com/iZLV20te02cd 提取码:6666 (包括所有代码源文件、第三方库和界面图片) 基于Java swing+Mysql实现的超市管理与购物系统,使用了beautyEye_inf.jar美化界面,使用

    2024年02月04日
    浏览(42)
  • 基于Javaweb的超市管理系统毕业设计项目源码+数据库+详细设计文档

    介绍 大学校内超市管理系统,实现收银台,商品分类管理,商品库存管理,商品管理,营收统计等功能 完整代码下载地址:基于Javaweb的超市管理系统 软件架构 使用说明 项目导入eclipse 配置tomcat+jdk sql 导入 修改config 下配置文件 本系统是基于B/S架构的武汉理工大学校内超市

    2024年02月09日
    浏览(52)
  • C++毕业设计基于QT实现的超市收银管理系统源代码+数据库

    C++毕业设计基于QT实现的超市收银管理系统源代码+数据库 编译使用 编译完成后,需要拷贝 file目录下的数据库 POP.db文件到可执行程序目录下 登录界面 主界面 会员管理 完整代码下载地址:基于QT实现的超市收银管理系统源代码+数据库

    2024年02月09日
    浏览(63)
  • 基于python+mysql超市信息管理系统(附完整源代码)

    (参考的是这篇文章(5条消息) 数据库课程设计—超市零售信息管理系统(Python实现)_小桃在改bug的博客-CSDN博客_超市管理系统数据库设计但是这篇文章里没有完整的代码,所以我自己补全了ui界面和相关的代码,并进行了二创,框架也有改动,更主要的是写出来自己在编写过

    2024年02月03日
    浏览(49)
  • Java实现超市账单管理系统 JAVA+Vue+SpringBoot+MySQL

    基于JAVA+Vue+SpringBoot+MySQL的超市账单管理系统,包含供应商模块、商品管理模块、超市账单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,超市账单管理系统基于角色的访问控制,给超市管理员

    2024年01月22日
    浏览(53)
  • 超市商品管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,阿里云社区专家博主,蓝桥云课讲师。 文末获取源码,项目编号: S 001 。 color{red}{文末获取源码,项目编号:S001。} 文末获取源码,项目编

    2024年02月08日
    浏览(43)
  • 基于python(Django、Mysql)的超市管理系统的设计与实现

    微信公众号:创享日记 对话框发送:python超市 获取完整论文报告、项目源码源文件等 开发技术介绍 Python语言功能强大,可以运用在诸多方面,其中在Web开发方向也有一系列十分成功的应用,同时为了方便开发,提升开发效率出现了一系列的开发框架,其中 Django 就是一个典

    2024年02月03日
    浏览(39)
  • java项目之社区生活超市管理系统(ssm+mysql+jsp)

    风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的 社区生活超市管理系统 。 技术交流和部署相关看文章末尾! 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:eclipse/id

    2024年02月16日
    浏览(49)
  • 基于swing的超市管理系统java仓库库存进销存jsp源代码mysql

    本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 基于swing的超市管理系统 系统有3权限:管理员、收银员、普通会员 分为前台和后台,有管理员、收银员和

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包