仓库信息管理系统设计与实现
一、数据库设计
1.数据库模型设计概览

2.数据库表设计
①depository

描述: 该表存储仓库的信息,比如仓库名称,仓库地址和仓库介绍
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | ||
| 2 | dname | VARCHAR(255) | 否 | 是 | 仓库名称 | |
| 3 | address | VARCHAR(255) | 否 | 是 | 仓库地址 | |
| 4 | introduce | VARCHAR(255) | 否 | 是 | 仓库介绍 |
②仓库调度记录(depository_record)

描述: 该表记录仓库调度的记录,同时该表也是数据也可以看做一条条申请信息。
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 记录id | |
| 2 | application_id | INT(10) | 否 | 否 | 申请编号(暂时无用) | |
| 3 | mname | VARCHAR(255) | 否 | 是 | 产品名称 | |
| 4 | depository_id | INT(10) | 否 | 是 | 调度的仓库id | |
| 5 | type | INT(10) | 否 | 是 | 0 | 调度记录类型(0出库,1入库) |
| 6 | quantity | DOUBLE(22) | 否 | 否 | 数量 | |
| 7 | price | DOUBLE(22) | 否 | 否 | 价格 | |
| 8 | state | VARCHAR(255) | 否 | 否 | 状态(待审核/审核未通过,未入库/出库/检验不通过,待验收/已入库/已出库) | |
| 9 | applicant_id | INT(10) | 否 | 否 | 申请人id | |
| 10 | apply_remark | VARCHAR(255) | 否 | 否 | 申请备注 | |
| 11 | apply_time | DATETIME | 否 | 否 | 申请时间 | |
| 12 | reviewer_id | INT(10) | 否 | 否 | 审核人id | |
| 13 | review_remark | VARCHAR(255) | 否 | 否 | 审核结果备注 | |
| 14 | review_time | DATETIME | 否 | 否 | 审核时间 | |
| 15 | review_pass | INT(10) | 否 | 否 | 审核是否通过,0表示未通过,1表示通过 | |
| 16 | checker_id | INT(10) | 否 | 否 | 验货人id | |
| 17 | check_remark | VARCHAR(255) | 否 | 否 | 验收备注 | |
| 18 | check_time | DATETIME | 否 | 否 | 出入库时间(验货时间) | |
| 19 | check_pass | INT(10) | 否 | 否 | 验收是否通过 |
3、产品信息记录(库存)(material)

描述: 产品信息记录(库存信息)
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 存储id | |
| 2 | depository_id | INT(10) | 否 | 否 | 仓库名称 | |
| 3 | mname | VARCHAR(255) | 否 | 否 | 材料名称 | |
| 4 | quantity | DOUBLE(22) | 否 | 否 | 数量 | |
| 5 | price | DOUBLE(22) | 否 | 否 | 总金额 | |
| 6 | type_id | INT(10) | 否 | 否 | 材料种类id |
4、material_type

描述: 材料种类,我对材料进行了分类,这样统计起来也方便很多,另外建一个表是为了防止以后可能会对材料类型做的补充,同时节省存储空间。
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 类型id | |
| 2 | tname | VARCHAR(255) | 否 | 是 | 类型名称 | |
| 3 | introduce | VARCHAR(255) | 否 | 否 | 类型介绍 |
5、notice

描述: 公告表,用于存储公告信息
表结构
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 公告主键 | |
| 2 | title | VARCHAR(255) | 否 | 是 | 公告标题 | |
| 3 | content | VARCHAR(255) | 否 | 否 | 公告内容 | |
| 4 | time | DATETIME | 否 | 是 | 发布时间 |
6、standing_book

描述: 台账表。
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 台账记录id | |
| 2 | type | INT(10) | 否 | 是 | 0表示调入,1表示调出(外部);2表示调入(退料),3表示调出(领料)(内部调用) | |
| 3 | quantity | INT(10) | 否 | 是 | 0 | 数量 |
| 4 | price | INT(10) | 否 | 是 | 0 | 总价 |
| 5 | material_name | VARCHAR(255) | 否 | 是 | 材料名称 |
7、transfer_record

描述: 转移表,这个是用来关联转移操作的。
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 转移记录id | |
| 2 | from_id | INT(10) | 否 | 是 | 转出仓库id | |
| 3 | to_id | INT(10) | 否 | 是 | 转入仓库id |
8、 user

描述: 用户表,这里的密码是经过加密存储的。
表结构:
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 默认值 | 描述 |
| 1 | id | INT(10) | 是 | 是 | 用户id | |
| 2 | uname | VARCHAR(255) | 否 | 是 | 用户名称 | |
| 3 | authority | VARCHAR(255) | 否 | 否 | 表示权限等级(游客/员工/审核员/仓管员/系统管理员) | |
| 4 | pwd | VARCHAR(255) | 否 | 否 | 用户登录密码(数据库存储的是加密后的) | |
| 5 | sex | VARCHAR(255) | 否 | 是 | 性别 | |
| 6 | depository_id | INT(10) | 否 | 否 | 负责仓库,序号表示仓库id,0表示全部仓库 | |
| 7 | entry_date | DATE | 否 | 是 | 入职日期 | |
| 8 | | VARCHAR(255) | 否 | 否 | 邮箱 | |
| 9 | phone | VARCHAR(255) | 否 | 否 | 手机号 |
相关文章:
仓库信息管理系统设计与实现
一、数据库设计 1.数据库模型设计概览 2.数据库表设计 ①depository 描述: 该表存储仓库的信息,比如仓库名称,仓库地址和仓库介绍 表结构: 序号 字段名 数据类型 主键 非空 默认值 描述 1 id INT(10) 是 是 2…...
初识Java多线程编程
文章目录 一、线程的状态二、线程的常见属性三、多线程编程Thread类常用构造方法1.继承Thread类2.实现Runnable接口3.匿名内部类实现4.lambda 表达式创建 Runnable 子类对象 四、线程的常见方法 一、线程的状态 //线程的状态是一个枚举类型 Thread.State public class ThreadS…...
最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书实例分析
随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…...
awk指令的详细指南
目录 工作原理 命令格式 awk常见的内建变量(可直接用)如下所示 按行输出文本 按字段输出文本 通过管道、双引号调用 Shell 命令 示例 CPU使用率 数组 编辑统计文件的内容出现的次数 使用awk 统计secure 访问日志中每个客户端IP的出现次数? …...
解密Netty中的Reactor模式
文章目录 单线程Reactor模式多线程Reactor模式Reactor模式中IO事件的处理流程Netty中的通道ChannelNetty中的反应器ReactorNetty中的处理器HandlerNetty中的通道Channel和处理器Handler的协作组件Pipeline Reactor(反应器)模式是高性能网络编程在设计和架构方面的基础模式.Doug…...
这是一个黑科技:C++爬虫~(文末报名C/C++领域新星计划)
目录 写在前面 完整代码 这里必看!! 写在最后 写在前面 现在所有人都知道万能的Python可以做机器学习,可以做人工智能,可以爬取各种小网站,但是你不知道,基于C++的正则表达式早就能够爬取各种网络数据啦!!你没猜错,阿玥将在这篇文章中简介怎么用C...
2023 年第八届数维杯数学建模挑战赛 赛题浅析
为了更好地让大家本次数维杯比赛选题,我将对本次比赛的题目进行简要浅析。本次比赛的选题中,研究生、本科组请从A、B题中任选一个 完成答卷,专科组请从B、C题中任选一个完成答卷。这也暗示了本次比赛的难度为A>B>C 选题人数初步估计也…...
Spring Boot单元测试
什么是单元测试? 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证的过程就叫单元测试。 单元测试是开发人员编写的一小段代码,用于检验被测代码的一个很小的、很明确的(代码) 功能是否正确。执行单元测试就是为了证明某…...
实景三维浪潮翻涌,新技术“席卷”石家庄!
5月11日,“全自主、全流程、全覆盖”2023实景三维新技术研讨会石家庄站暨航测与遥感学术交流会在石家庄凯旋金悦大酒店圆满举行。 本次会议由中国测绘学会、中国地理信息产业协会指导,河北省测绘学会、河北省地理信息产业协会主办,武汉大势智…...
【Python】使用小脚本
本文整理了我在学习和工作中用到的实用python脚本,希望也能帮助到需要的小伙伴~ 文章目录 视频格式转换顺序遍历文件夹中的文件 视频格式转换 安装视频处理库moviepy pip install moviepy安装FFmpeg(FFmpeg是一个开源的多媒体框架,moviepy…...
技术日志2023-5-18
1、Java远程调试 可参考:https://kefeng.wang/2018/03/06/idea-remote-debug/ 2、用户中心这样的基础项目有什么用,感觉非常鸡肋。 今天开发讨论中涉及到了用户中心,感觉在项目中使用用户中心只是给业务系统发一个token,业务系…...
JUC之锁
公平锁、非公平锁 公平锁指的是多线程按照申请锁的顺序来获取锁; 非公平锁指的是多线程不按照申请锁的顺序来获取锁。可能会出现优先级反转(后者居上) 公平锁为了保证线程申请顺序,势必要付出一定的性能代价,因此其吞…...
C++中的 cout 和 printf 用法
文章目录 前言cout & printfexampleprintf输出string字符串总结 前言 C是一种面向对象的编程语言,它继承了C语言的特点,同时也增加了许多新的特性。在C中的cout 和 printf是两种常用的输出函数,它们都可以将数据显示在屏幕上,…...
Maven基础使用
Maven 学习目标 理解Maven的用途掌握Maven的基本操作掌握Maven如何创建Web项目 Maven是什么 面临问题 在学习Maven之前,我们先来看一下我们现在做的项目都有哪些问题。假设你现在做了一个crm的系统,项目中肯定要用到一些jar包,比如说myb…...
【C++ 入坑指南】(06)运算符
文章目录 一、算术运算符二、赋值运算符三、比较运算符四、逻辑运算符五、算法题5.1、拆分位数 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符,并提供了以下类型的运算符: 运算符类型作用算术运算符用于处理四则运算赋值…...
了解一下js中的函数式编程
js中的函数式编程是一种编程范式,它将函数作为一等公民来使用。 在函数式编程中,函数是一种特殊的对象,可以赋值给变量、作为参数传递给其他函数、或作为其他函数的返回值。 函数式编程强调了函数的纯函数性,即函数输入相同时&a…...
动态HTTP代理在linux里的使用
动态HTTP代理是一种可以自动切换代理IP地址的代理方式,可以有效地绕过一些限制访问的网站。在Linux系统中,可以使用Privoxy和Proxychains来实现动态HTTP代理。 以下是在Linux中使用动态HTTP代理的步骤: 1. 安装Privoxy和Proxychains 在终端中…...
软考证书值得考吗?怎么考?
软考证书是什么?有什么用处?必须先明确这两个问题,才能有复习和考取的动力。怎么考过?这是第二步要着重解决的问题。今天详细帮助大家分析一下。 软考是国家级考试,具有强大的权威性与公信力。 软考全称为计算机技术…...
超级秘密文件夹忘记密码的解决办法
超级秘密文件夹是一款非常特殊的文件夹加密软件,它来无影去无踪,在安装后不会留下任何痕迹,只能通过软件热键才能打开。那么如果在使用过程中忘记了密码,这时我们该怎么办呢?下面我们就来了解一下。 首先,我…...
脑的物理系统
⼤脑模块化 人脑是一个复杂的网络,一般将大脑划分为不同的区域(即节点),并使用某种方法表征大脑区域之间的关系(即连接的边)来构建人脑网络。在功能磁共振成像(fMRI)数据的网络模型…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
