目录

数据库结构

一.逻辑结构设计

1.会员信息表hyxxb

2.货品名称表hpmcb

3.供应商信息表gysxxb

4.收银记录表

5.收银明细表symxb

6.货品库存表

7.扎帐记录表

8.汉字拼音表

二.索引

1.汉字拼音表索引

三.视图

1.货品库存数量视图

2.收银明细视图

四.创建函数

五.创建触发器

六.创建存储过程

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

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


数据库结构

一.逻辑结构设计

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.货品库存数量视图

CREATE VIEW v_hpkcbASSELECT hpkcb.hpid,hpmc,jldw,kcslFROM hpkcb,hpmcbWHERE hpmcb.Hpid=hpkcb.hpid;DESC v_hpkcb;
SELECT * FROM v_hpkcb;

2.收银明细视图

CREATE VIEW v_symxbASSELECT mxid,syid,hpmc,jldw,xssl,dj,symxb.lsjFROM symxb,hpmcbWHERE 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
BEGINSET @l=CHAR_LENGTH(zw);SET @i=1;SET @pysx='';SET @jp='';WHILE @i<=@l DOSET @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,删除指定商品信息
ELSEDELETE 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]超市购物管理系统相关推荐

  1. (附源码)springboot基于java的超市购物管理系统 毕业设计 271611

    基于springboot超市购物管理系统小程序 摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱 ...

  2. c语言实验报告超市购物系统,C语言超市购物管理系统的报告.doc

    第 PAGE 14 页 共 15 页 TOC \t "标题 2,1,样式2,2,样式3,3" \h 3033 1题目描述 1 760 2 系统分析 1 119 2.1 题目要求 1 ...

  3. MySQL超市会员管理系统_PHP+MYSQL药店会员管理系统的设计与实现

    药房会员管理系统是信息时代的产物,随着时代的发展,各大药店也与时俱进使用了各类现代化的系统来进行各类药品和会员信息的管理,甚至有些药店会给会员使用积分系统,根据用户的消费进行积分,然后用积分兑换一些差 ...

  4. 基于python+mysql超市信息管理系统(附完整源代码)

    (参考的是这篇文章(5条消息) 数据库课程设计-超市零售信息管理系统(Python实现)_小桃在改bug的博客-CSDN博客_超市管理系统数据库设计但是这篇文章里没有完整的代码,所以我自己补全了ui界 ...

  5. 基于PHP+MySQL超市库存管理系统的设计与实现

    随着经济的高速发展,超市的信息化工作也在如火如荼地进行,由于超市规模的不断扩大以及商务往来的日益增多,超市对进销存信息的掌握和使用就越来越多,因此以前的原始的手工操作方式就不能适应超市快速发展的需要, ...

  6. PHP+Mysql—食品购物管理系统(前端、后端-整套源码)

    一.功能 前台功能: 1.公司介绍.全部商品查看.商品分类查看.搜索商品 2.用户注册.用户登录.退出登录 3.前台用户个人信息修改.购买商品.查看已经购买的商品.退货 后台功能: 1.后台登录.修改 ...

  7. MySQL超市会员管理系统_springboot+mysql超市会员管理系统

    <p class="MsoNormal" style="margin-left:0.0000pt;text-indent:0.0000pt;"> & ...

  8. 基于javaweb的水果生鲜超市商城管理系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的水果生鲜超市商城管理系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  9. django+mysql超市管理系统-计算机毕业设计源码26073

    摘要 随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种信息进行统计分析.而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率 ...

最新文章

  1. SQL查询入门(下篇)
  2. 聚焦互联网应用和深度学习
  3. elasticsearch id查询_互联网公司中对【Elasticsearch】的真实应用案例
  4. springcloud(五):熔断监控Hystrix Dashboard和Turbine
  5. c语言判断回文字符串递归,用递归实现判断一个字符串是否为回文串
  6. 盘点物联网网络和设备安全的五个误解
  7. Mysql 自增主键
  8. 还担心学习AI没有数学基础吗?读完它们,你就有了!!!
  9. 谷歌浏览器如何安装插件-以octotree为例
  10. android 跑马灯速度,自定义TextView跑马灯效果可控制启动/停止/速度/焦点
  11. 数学中的圆周率符号怎么输入
  12. centos7安装boost记录
  13. Web 应用防火墙:Modsecurity 和核心规则集
  14. Notes弹窗查询异构系统数据库解决方案
  15. Photoshop-图层相关概念-LayerComp-Layers-移动旋转复制图层-复合图层
  16. Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)
  17. 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
  18. 5. C++ 抽象类
  19. python判断偶数奇数_Python程序检查数字是奇数还是偶数
  20. SVG——入门,路径变形动画

热门文章

  1. 国标GB/T28181流媒体服务器安防4G摄像头互联网直播EasyGBS如何实现H265网页直播的?
  2. Excel一页打印放不下时的处理
  3. 赛格威机器人待遇_赛格威配送机器人:年内做到10天无故障 3年10万台
  4. 树模型(六):XGBoost
  5. redo synch writes在什么情况下发生
  6. 中国运动鞋产业政府战略管理与区域发展战略研究咨询报告
  7. Bert 得到中文词向量
  8. 【vue2】中 谷歌 Chrome 实现自定义页眉页脚打印
  9. 两行代码激活windows系统
  10. 如何用css实现左右翻页效果图,如何利用CSS3实现3D翻书效果