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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Os-hackNos

下载地址 https://download.vulnhub.com/hacknos/Os-hackNos-1.ova 环境配置如果出现,扫描不到IP的情况,可以尝试vulnhub靶机检测不到IP地址解决办法_vulnhub靶机扫描不到ip-CSDN博客 信息收集 确定靶机地址: 探测到存活主机192.168.111.…

modelscope可控细节的长文档摘要

modelscope可控细节的长文档摘要尝试 本文的想法来自今年OpenAI cookbook的一篇实践:summarizing_long_documents,目标是演示如何以可控的细节程度总结大型文档。 如果我们想让大语言模型总结一份长文档(例如 10k 或更多tokens)&…

【MySQL】 NDB 集群概述

MySQL NDB(Network Database)是MySQL的一个存储引擎,也称为NDB Cluster存储引擎。它主要用于构建高可用性、高可扩展性和高性能的分布式数据库集群。NDB Cluster是MySQL的一个特殊版本,专门设计用于处理大规模的分布式数据存储和处…

【MySQL】MySQL 9.0悄悄的来了

MySQL 9.0.0 中的变化 MySQL 9.0 中的新功能 JavaScript 存储程序 MySQL 企业版现在支持用 JavaScript 编写的存储程序,例如使用 CREATE FUNCTION下面显示的语句和 JavaScript 代码创建的这个简单示例: CREATE FUNCTION gcd(a INT, b INT) RETURNS …

SpringBoot-第一天学习

SpringBoot介绍-约定大于配置 SpringBoot是在Spring4.0基础上开发的,不是替代Spring的解决方案,而是和Spring框架结合并进一步简化Spring搭建和开发过程的。 如何简化?就是通过提供默认配置等方式让我们更容易,集成了大量常用的…

泛微开发修炼之旅--29用计划任务定时发送邮件提醒

文章链接:29用计划任务定时发送邮件提醒

嵌入式Linux系统编程 — 6.7 实时信号

目录 1 什么是实时信号 2 sigqueue函数 3 sigpending()函数 1 什么是实时信号 等待信号集只是一个掩码,它并不追踪信号的发生次数。这意味着,如果相同的信号在被阻塞的状态下多次产生,它只会在信号集中被记录一次,并且在信号集…

Django文档简化版——Django快速入门——创建一个基本的投票应用程序

Django快速入门——创建一个基本的投票应用程序 准备工作1、创建虚拟环境2、安装django 1、请求和响应(1)创建项目(2)用于开发的简易服务器(3)创建投票应用(4)编写第一个视图1、编写…

FreeRTOS的任务间通信

文章目录 4 FreeRTOS任务间通信4.1 队列4.1.1 队列的使用4.1.2 队列的创建,删除,复位4.1.3 队列的发送,接收,查询 4.2 邮箱(mailbox)4.2.1 任务中读写邮箱4.2.2 中断中读写邮箱 4.3 队列集4.3.1 队列集的创…

linux19:程序替换

一&#xff1a;最简单的看看程序替换是什么样的&#xff08;单个进程版&#xff09; 1 #include<stdio.h>2 #include<unistd.h>3 #include<stdlib.h>4 int main()5 {6 printf("Before : I am a process , myPid:%d,myPPid:%d\n",getpid(),getpp…

【Ubuntu】详细说说Parallels DeskTop安装和使用Ubuntu系统

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境二、Ubuntu系统的使用2.1 系统的下载2.2 系统的安装2.3 安装桌面版(可选)2.3.1 安装/更新apt2.3.2 安装桌面版2.3…

算法day02 回文 罗马数字转整数

回文 搞错了String类型的indexOf方法&#xff0c;理解成获取对应下标的值&#xff0c;实际上是在找对应值的下标。 4ms 耗时最少的方法尽量不会去调用jdk提供的方法&#xff0c;而是直接使用对应的数学逻辑关系来处理&#xff0c; 甚至用 代替equals方法。 罗马数字转整数 考…

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

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

Oracle 解决4031错误

一、问题描述 什么是4031错误和4031错误产生的原因: 简单一个句话概括: 由于服务器一直在执行大量的硬解析,导致Oracle 的shared pool Free空间碎片过多,大的chunk不足, 当又一条复杂的sql语句要硬解析时, 缺少1个足够大的Free chunk, 通常就会报4031错误. 二、解决方法 临…

JVM原理(十五):JVM虚拟机静态分配与动态分配

1. 分派 本节讲解的分派调用过程将会揭示多态性特征的一-些最基本的体现&#xff0c;如“重载”和“重写”在Java虚拟机之中是如何实现的。 1.1. 静态分派 案例&#xff1a; 我们先来看一段代码: Human mannew Man(); 我们把上面代码中的“Human"称为变量的“静态类型…

9 redis,memcached,nginx网络组件

课程目标: 1.网络模块要处理哪些事情 2.reactor是怎么处理这些事情的 3.reactor怎么封装 4.网络模块与业务逻辑的关系 5.怎么优化reactor? io函数 函数调用 都有两个作用:io检测 是否就绪 io操作 1. int clientfd = accept(listenfd, &addr, &len); 检测 全连接队列…

Contact Form 7表单获取提交用户IP及URL等信息

有时候&#xff0c;您可能需要了解Contact Form 7表单提交后的更多的信息&#xff0c;而不仅仅是通过联系人表单字段获取用户的联系信息。例如&#xff0c;需要知道用户是哪个国家&#xff08;通过获取IP&#xff09;&#xff0c;了解用户使用的设备&#xff08;手机还是电脑&a…

【IDEA】maven如何进行文件导入,配置并打包

一&#xff0c;介绍、安装 1、maven介绍 maven是一个Java世界中&#xff0c;构建工具。 核心功能&#xff1a; (1) 管理依赖&#xff1a; 管理文件运行的顺序逻辑依赖关系。对配置文件&#xff0c;进行构建和编译。其也是在调用jdk&#xff0c;来进行编译打包工作。 (2) 打…

Protobuf(三):理论学习,简单总结

1. Protocol Buffers概述 Protocol Buffers&#xff08;简称protobuf&#xff09;&#xff0c;是谷歌用于序列化结构化数据的一种语言独立、平台独立且可扩展的机制&#xff0c;类似XML&#xff0c;但比XML更小、更快、更简单protobuf的工作流程如图所示 1.1 protobuf的优点…

2024上海初中生古诗文大会暑期备考:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会初选还有不到4个月&#xff08;11月3日正式开赛&#xff09;&#xff0c;我们继续来看10道选择题真题和详细解析。为帮助孩子自测和练习&#xff0c;题目的答案和解析统一附后。 本专题持续分享。 一、上海初中古诗文大会历年真题精选(参考答案…