【数据库】仓库管理数据库(练习样例)

news2024/11/20 23:15:55

某连锁超市需要设计实现一个仓库管理系统,要求每个仓库可以有多名仓库管理员每个仓库管理员只负责管理一个仓库,同时每个仓库都配备了一名仓库主管;不同的仓库存放的是不同类型的货品,每种货品只存放在固定的仓库中;定期采购的货品会由当天值班的仓库管理员进行登记入库,若超市中某种货品短缺,去仓库提取货品时,也需由当天值班的仓库管理员进行登记出库。通过需求分析,设计该系统所需的仓库管理数据库共有 5 个基本表:

  1. 管理员信息表(ManagerInfo)
  2. 仓库信息表(WarehouseInfo)
  3. 货品信息表(ProductInfo)
  4. 入库清单表(InList)
  5. 出库清单表(OutList)

1、管理员信息表(ManagerInfo)用来保存仓库管理员的相关信息

序号

字段名

字段类型

字段长度

字段中文名

备注

1

Mno

CHAR

3

管理员编号

主键

2

Mname

VARCHAR

10

管理员姓名

非空

3

Mgender

CHAR

1

管理员性别

默认’男’

4

Mbirhdate

DATE

管理员出生日期

5

Mtelephone

CHAR

11

管理员电话

非空

6

Mhiredate

DATE

入职日期

7

Wno

CHAR

3

管理仓库编号

外键

CREATE TABLE IF NOT EXISTS ManagerInfo (
    Mno CHAR(3) PRIMARY KEY COMMENT '管理员编号',
    Mname VARCHAR(10) NOT NULL COMMENT '管理员姓名',
    Mgender CHAR(1) DEFAULT '男' COMMENT '管理员性别',
    Mbirthdate DATE COMMENT '管理员出生日期',
    Mtelephone CHAR(11) NOT NULL COMMENT '管理员电话',
    Mhiredate DATE COMMENT '入职日期',
    Wno CHAR(3) COMMENT '管理仓库编号'
);

ALTER TABLE ManagerInfo
ADD CONSTRAINT fk_WarehouseInfo
FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

示例数据如下图所示:

INSERT INTO ManagerInfo (Mno, Mname, Mgender, Mbirthdate, Mtelephone, Mhiredate, Wno)
VALUES ('M01', '吴腾雨', '男', '1994-12-08', '15912345678', '2020-03-15', 'W01');

INSERT INTO ManagerInfo (Mno, Mname, Mgender, Mbirthdate, Mtelephone, Mhiredate, Wno)
VALUES ('M02', '徐慧文', '女', '1997-02-18', '13623456789', '2020-03-15', 'W01');

INSERT INTO ManagerInfo (Mno, Mname, Mgender, Mbirthdate, Mtelephone, Mhiredate, Wno)
VALUES ('M03', '唐康勇', '男', '1994-05-29', '13313579864', '2020-03-15', 'W02');

2、仓库信息表(WarehouseInfo)用来保存仓库的相关信息

序号

字段名

字段类型

字段长度

字段中文名

备注

1

Wno

CHAR

3

仓库编号

主键

2

Wname

VARCHAR

10

仓库名称

非空

3

Wtype

VARCHAR

7

仓库类别

4

Waddress

VARCHAR

30

仓库地址

5

Wcharge

CHAR

3

仓库主管

外键

CREATE TABLE IF NOT EXISTS WarehouseInfo (
    Wno CHAR(3) PRIMARY KEY COMMENT '仓库编号',
    Wname VARCHAR(10) NOT NULL COMMENT '仓库名称',
    Wtype VARCHAR(7) COMMENT '仓库类别',
    Waddress VARCHAR(30) COMMENT '仓库地址',
    Wcharge CHAR(3) COMMENT '仓库主管'
);

ALTER TABLE WarehouseInfo
ADD CONSTRAINT FK_Warehouse_Manager
FOREIGN KEY (Wcharge) REFERENCES ManagerInfo (Mno);

示例数据如下图所示:

INSERT INTO WarehouseInfo (Wno, Wname, Wtype, Waddress, Wcharge)
VALUES ('W01', '仓库01', '食品类', '中南大街26号仓库', 'M01');

INSERT INTO WarehouseInfo (Wno, Wname, Wtype, Waddress, Wcharge)
VALUES ('W02', '仓库02', '粮油类', '中南大街30号仓库', 'M03');

INSERT INTO WarehouseInfo (Wno, Wname, Wtype, Waddress, Wcharge)
VALUES ('W03', '仓库03', '服装类', '三里屯12号仓库', 'M06');

3、货品信息表(ProductInfo)用来保存货品的相关信息

序号

字段名

字段类型

字段长度

字段中文名

备注

1

Pno

CHAR

8

货品编号

主键

2

Pname

VARCHAR

30

货品名称

非空

3

Ptype

VARCHAR

8

货品类别

4

Pprice

FLOAT

货品售价

5

Punit

VARCHAR

10

货品单位

6

Pweight

VARCHAR

10

货品重量

7

Pmanufacture

VARCHAR

30

货品生产厂商

8

Pguaranteedate

VARCHAR

8

货品保质期

9

Wno

CHAR

3

存放仓库编号

外键

10

Pstock

INT

货品库存量

CREATE TABLE IF NOT EXISTS ProductInfo (
    Pno CHAR(8) PRIMARY KEY COMMENT '货品编号',
    Pname VARCHAR(30) NOT NULL COMMENT '货品名称',
    Ptype VARCHAR(8) COMMENT '货品类别',
    Pprice FLOAT COMMENT '货品售价',
    Punit VARCHAR(10) COMMENT '货品单位',
    Pweight VARCHAR(10) COMMENT '货品重量',
    Pmanufacture VARCHAR(30) COMMENT '货品生产厂商',
    Pguaranteedate VARCHAR(8) COMMENT '货品保质期',
    Wno CHAR(3) COMMENT '存放仓库编号',
    Pstock INT COMMENT '货品库存量'
);

ALTER TABLE ProductInfo
ADD CONSTRAINT FK_Product_Warehouse
FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

INSERT INTO ProductInfo (Pno, Pname, Ptype, Pprice, Punit, Pweight, Pmanufacture, Pguaranteedate, Wno, Pstock)
VALUES ('10010001', '雀巢咖啡1+2原味三合一速溶咖啡粉', '饮品', 60.00, '盒(45+5)', '750g', '东莞雀巢有限公司', '18个月', 'W01', 24);

INSERT INTO ProductInfo (Pno, Pname, Ptype, Pprice, Punit, Pweight, Pmanufacture, Pguaranteedate, Wno, Pstock)
VALUES ('10010002', '100%果汁苹果汁', '饮品', 5.20, '瓶', '200ml', '北京汇源生物科技有限公司', '6个月', 'W01', 46);

INSERT INTO ProductInfo (Pno, Pname, Ptype, Pprice, Punit, Pweight, Pmanufacture, Pguaranteedate, Wno, Pstock)
VALUES ('10010003', '特正宗有机五常大米原粮稻花香2号', '粮油', 150.00, '袋', '5kg', '五常米磐达米业有限公司', '12个月', 'W02', 40);

4、入库清单表(InList)用来保存各个仓库货品入库的相关信息 

序号

字段名

字段类型

字段长度

字段中文名

备注

1

Iid

自动编号

入库序号

主键

2

Pno

CHAR

8

货品编号

外键

3

Wno

CHAR

3

仓库编号

外键

4

Mno

CHAR

3

管理员编号

外键

5

Idate

DATE

入库日期

6

Isupplier

VARCHAR

30

供应商名称

7

Iprice

FLOAT

入库单价

8

Inum

INT

入库数量

CREATE TABLE IF NOT EXISTS InList (
    Iid INT AUTO_INCREMENT PRIMARY KEY COMMENT '入库序号',
    Pno CHAR(8) COMMENT '货品编号',
    Wno CHAR(3) COMMENT '仓库编号',
    Mno CHAR(3) COMMENT '管理员编号',
    Idate DATE COMMENT '入库日期',
    Isupplier VARCHAR(30) COMMENT '供应商名称',
    Iprice FLOAT COMMENT '入库单价',
    Inum INT COMMENT '入库数量'
);

ALTER TABLE InList
ADD CONSTRAINT FK_InList_Product
FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

ALTER TABLE InList
ADD CONSTRAINT FK_InList_Warehouse
FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

ALTER TABLE InList
ADD CONSTRAINT FK_InList_Manager
FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

示例数据如下图所示:

INSERT INTO WarehousingInfo (EntryNo, ProductNo, WarehouseNo, OperatorNo, EntryDate, SupplierName, EntryPrice, EntryQuantity)
VALUES (1, '10020001', 'W02', 'M03', '2020-03-17', '健康粮食生产基地字', 24.00, 100);

INSERT INTO WarehousingInfo (EntryNo, ProductNo, WarehouseNo, OperatorNo, EntryDate, SupplierName, EntryPrice, EntryQuantity)
VALUES (2, '10010001', 'W01', 'M01', '2020-03-18', '字一饮料公司', 30.00, 80);

INSERT INTO WarehousingInfo (EntryNo, ProductNo, WarehouseNo, OperatorNo, EntryDate, SupplierName, EntryPrice, EntryQuantity)
VALUES (3, '10010002', 'W01', 'M01', '2020-03-18', '字一饮料公司', 3.60, 150);

5、出库清单表(OutList)用来保存货品出库的相关信息

序号

字段名

字段类型

字段长度

字段中文名

备注

1

Oid

自动编号

出库序号

主键

2

Pno

CHAR

8

货品编号

外键

3

Wno

CHAR

3

仓库编号

外键

4

Mno

CHAR

3

管理员编号

外键

5

Odate

DATE

出库日期

6

Onum

INT

出库数量

7

Odest

VARCHAR

30

出库去向

CREATE TABLE IF NOT EXISTS OutList (
    Oid INT PRIMARY KEY AUTO_INCREMENT COMMENT '出库序号',
    Pno CHAR(8) COMMENT '货品编号',
    Wno CHAR(3) COMMENT '仓库编号',
    Mno CHAR(3) COMMENT '管理员编号',
    Odate DATE COMMENT '出库日期',
    Onum INT COMMENT '出库数量',
    Odest VARCHAR(30) COMMENT '出库去向'
);

ALTER TABLE OutList
ADD CONSTRAINT FK_OutList_Product
FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

ALTER TABLE OutList
ADD CONSTRAINT FK_OutList_Warehouse
FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

ALTER TABLE OutList
ADD CONSTRAINT FK_OutList_Manager
FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

示例数据如下图所示:

INSERT INTO OutList (Oid, Pno, Wno, Mno, Odate, Onum, Odest)
VALUES (1, '10020001', 'W02', 'M03', '2020-03-20', 30, '超市1号店');

INSERT INTO OutList (Oid, Pno, Wno, Mno, Odate, Onum, Odest)
VALUES (2, '10020001', 'W02', 'M03', '2020-03-20', 20, '超市2号店');

INSERT INTO OutList (Oid, Pno, Wno, Mno, Odate, Onum, Odest)
VALUES (3, '10010001', 'W01', 'M02', '2020-03-20', 30, '超市1号店');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多态的优点

多态的优点 1、多态的优点1.1 可替换性(Substitutability)2、可扩充性(Extensibility) 2、总结 💖The Begin💖点点关注,收藏不迷路💖 1、多态的优点 在面向对象编程(OOP…

14-23 深度神经网络的主要架构(RNN/LSTM/CNN)

神经网络架构 神经网络的架构决定了这些网络如何运行,这是执行各种任务和扩展神经网络应用的关键因素,主要有两种方法:前馈神经网络和反馈神经网络。在本文中,在彻底分析每种方法之后,我们将对这两种架构进行深入比较…

MFC常见问题解决

文章目录 1. 单文档程序初始化显示设置问题解决方案 1. 单文档程序初始化显示设置 问题 在Microsoft Foundation Classes (MFC) 中,单文档应用程序(SDI)的初始化时默认并不设置为最大显示。但你可以通过编程方式在程序启动时将其设置为全屏…

头歌资源库(19)在排序数组中查找元素的首尾位置

一、 问题描述 二、算法思想 该问题可以通过二分查找的思想来解决。 首先,我们可以使用二分查找找到目标值在数组中的任意一个位置(即该位置的值等于目标值)。假设找到的位置为mid。 接下来,我们需要在mid的左边和右边分别找到…

Golang | Leetcode Golang题解之第216题组合总和III

题目: 题解: func combinationSum3(k int, n int) (ans [][]int) {var temp []intvar dfs func(cur, rest int)dfs func(cur, rest int) {// 找到一个答案if len(temp) k && rest 0 {ans append(ans, append([]int(nil), temp...))return}/…

Docker的基本介绍

Docker 简单介绍 基本概念 镜像 docker 镜像好比一个模板,可以通过这个模板来创建容器服务,是一种轻量级、可执行的软件包,包含运行应用程序时所需要的一切:代码、运行时、库、环境变量、配置文件等 所有的应用打包成一个 doc…

C语言入门-结构体6

结构体入门 编写程序&#xff0c;用struct分别表示平面上的点和平面上的矩形。 #include <stdio.h> int main() { struct point {int x; int y;}; struct point p1 {1, 2}; printf(“(%d, %d)\n”, p1.x, p1.y); struct rectangle {struct point p1;struct point p2;…

vue的学习--day3

1、尝试使用json文件模拟增删改查 json server:准备一份自己的数据&#xff08;这里我用的是老师给的&#xff09;。 转到d盘&#xff0c;然后打开json文件&#xff1a; 下面模拟增删改查&#xff1a; 借助工具postman或apifox或apipost&#xff1a; 这里我下载了apifox&…

【Abaqus Case】2D弹塑性接触分析

原文链接&#xff1a;https://www.cnblogs.com/aksoam/p/18283296 更多精彩&#xff0c;关注博客园主页&#xff0c;不断学习&#xff01;不断进步&#xff01; 我的主页 csdn很少看私信&#xff0c;有事请b站私信 博客园主页-发文字笔记-常用 有限元鹰的主页 内容&#xf…

VCS+Vivado联合仿真BUG

场景&#xff1a; 在vcsvivado联合仿真过程中&#xff0c;对vivado导出的shell脚本修改&#xff0c;修改某些source文件路径&#xff0c;vcs编译时会报Permission Denied。 问题描述 对shell脚本修改如下&#xff1a; 修改仅为注释掉某一行&#xff0c;下面变为source文件新…

Golang | Leetcode Golang题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; func shortestPalindrome(s string) string {n : len(s)fail : make([]int, n)for i : 0; i < n; i {fail[i] -1}for i : 1; i < n; i {j : fail[i - 1]for j ! -1 && s[j 1] ! s[i] {j fail[j]}if s[j 1] s[i] {fail[i…

sql查询 只取某字段重复数据中的一条

一. 前提条件 某表的主键由两个字段A、B构成&#xff08;或者更多&#xff09;&#xff0c;任何其中一个字段都可能具有重复的数据。 需要只取字段A所有重复数据中的一条构成查询结果&#xff0c;也就是字段A取到所有的可能取值且无重复。 二. 方法一&#xff08;where ... …

填报高考志愿,怎样正确地选择大学专业?

大学专业的选择&#xff0c;会关系到未来几年甚至一辈子的发展方向。这也是为什么很多人结束高考之后就开始愁眉苦脸&#xff0c;因为他们不知道应该如何选择大学专业&#xff0c;生怕一个错误的决定会影响自己一生。 毋庸置疑&#xff0c;在面对这种选择的时候&#xff0c;我…

3-2 梯度与反向传播

3-2 梯度与反向传播 主目录点这里 梯度的含义 可以看到红色区域的变化率较大&#xff0c;梯度较大&#xff1b;绿色区域的变化率较小&#xff0c;梯度较小。 在二维情况下&#xff0c;梯度向量的方向指向函数增长最快的方向&#xff0c;而其大小表示增长的速率。 梯度的计算 …

Java--封装详解

1.该漏的漏&#xff0c;该藏的藏 我们程序设计要追求“高内聚&#xff0c;低耦合”。高内聚就是类的内部数据操作细节自己完成&#xff0c;不允许外部干涉&#xff1b;低耦合&#xff1a;仅暴露少量的方法给外部使用 2.封装&#xff08;数据的隐藏&#xff09;私有&#xff1a…

运维锅总详解计算机缓存

本文从OSI模型中的每一层缓存介绍、常见开源中间件缓存举例、TCP/IP协议栈中的缓存机制、操作系统中的缓存、访问缓存数据的时间范围统计等方面对计算机中的缓存进行详细介绍。希望对您有所帮助&#xff01; 一、OSI模型中的每一层缓存 1. 物理层&#xff08;Physical Layer&…

微信小程序消息通知(一次订阅)

在微信公众平台配置通知模版 通过wx.login获取code发送给后端 let that this // 登陆codewx.login({success: function (res) {if (res.code) {// 发送code到后端换取openid和session_keythat.setData({openCode: res.code})console.log(that.data.openCode, openCode);// 调…

Simulink中示波器连续运行的方法

1.在Simulink中,经常要使用到示波器,默认示波器是定时运行的,只能观察到一小部分运行的波形;实际调试过程中,经常要连续运行,因此,需要设置示波器为连续运行模式,下面将介绍示波器连续运行的方法。 打开Simulink仿真软件,找到仿真设置按钮,点击设置: 2.将其停止时间…

前端面试题(CSS篇二)

一、请解释一下 CSS3 的 Flex box&#xff08;弹性盒布局模型&#xff09;&#xff0c;以及适用场景 相关知识点: Flex是FlexibleBox的缩写&#xff0c;意为"弹性布局"&#xff0c;用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。行内元素也可…

AcWing 1511:笨鸟

【题目来源】https://www.acwing.com/problem/content/1513/【题目描述】 小王特别喜欢玩 flappy birds&#xff0c;但是他比较菜&#xff0c;所以向大家寻求帮助&#xff0c;游戏规则大家都懂&#xff0c;每一秒如果点击屏幕&#xff0c;小鸟会从 (x,y) 飞到 (x1,y1)&#xff…