当前位置: 首页 > news >正文

服务器管理平台开发(2)- 设计数据库表

数据库表设计

本篇文章主要对数据管理平台数据库表设计进行介绍,包括单库多表设计、SQL语句、视图构造等

1、整体设计

  • 设备品牌、序列号、型号等使用业务主表进行记录,逻辑磁盘、PCI设备可能出现1对N的情况,分别使用PCI设备表、Mac地址表、逻辑磁盘表、应用程序表、登录日志表进行记录

  • 构建虚拟视图统一查询,多表联合,使用业务IP+SN序列号作为设备唯一标识

  • 增加历史记录表,对所有表数据的更新删除操作进行记录,方便回溯

2、库表设计

涉及数据库表较多,此处仅展示部分表结构设计

2.1、业务主表

字段名称字段类型解释
Id字段类型解释
BusinessIpint业务Ip地址
SNstring序列号
Brandstring品牌
Modelstring型号
CPUtimestampCPU
Memorytimestamp内存
PlatformTypestring平台类型
UseForstring用途
CreatedAttimestamp创建时间
UpdatedAttimestamp修改时间

2.2、PCI设备表

字段名称字段类型解释
Idint自增ID
BusinessIpstring业务Ip地址
SNstring序列号
PCIDevicestringPCI设备表
CreatedAttimestamp创建时间
UpdatedAttimestamp修改时间

2.3、MAC地址表

字段名称字段类型解释
Idint自增ID
BusinessIpstring业务Ip地址
SNstring序列号
MacAddressstringMAC地址
CreatedAttimestamp创建时间
UpdatedAttimestamp修改时间

3、SQL设计

涉及数据库表较多,此处仅展示部分建表SQL,作为参考

3.1、历史记录表

CREATE TABLE `es_history` (`Id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',`Object` varchar(255) NOT NULL COMMENT '索引',`PK` varchar(255) NOT NULL COMMENT 'BOM前缀',`Key` varchar(255) NOT NULL COMMENT '索引',`OpKind` varchar(255) NOT NULL COMMENT 'BOM前缀',`PrevModify` varchar(255) NOT NULL COMMENT '索引',`NextModify` varchar(255) NOT NULL COMMENT 'BOM前缀',`Version` int NOT NULL COMMENT '索引',`Operator` varchar(64) NOT NULL COMMENT 'BOM前缀',`CreatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`UpdatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

3.2、系统信息表

CREATE TABLE `es_meta_info` (`Id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',`BusinessIp` varchar(255) NOT NULL COMMENT '业务IP',`SN` varchar(255) NOT NULL COMMENT '序列号',`Brand` varchar(255) NOT NULL COMMENT '品牌',`Model` varchar(255) NOT NULL COMMENT '型号',`CpuModel` varchar(255) NOT NULL COMMENT 'CPU型号',`CpuNumber` varchar(255) NOT NULL COMMENT 'CPU数量',`Memory` varchar(255) NOT NULL COMMENT '内存',`PlatformType` varchar(255) NOT NULL COMMENT '平台类型',`UseFor` varchar(255) NOT NULL COMMENT '用途',`MacAddress` varchar(255) NOT NULL COMMENT 'MAC地址',`LogicDisk` varchar(255) NOT NULL COMMENT '逻辑磁盘',`PCIDevices` varchar(255) NOT NULL COMMENT 'PCI设备',`Program` varchar(255) NOT NULL COMMENT '应用程序',`LoginInfo` varchar(255) NOT NULL COMMENT '登录日志',`CreatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`UpdatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`Id`),UNIQUE KEY `business` (`BusinessIp`,`SN`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

3.3、逻辑磁盘表

CREATE TABLE `es_logicaldisk` (`Id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',`BusinessIp` varchar(255) NOT NULL COMMENT '业务IP',`SN` varchar(255) NOT NULL COMMENT '序列号',`Filesystem` varchar(255) NOT NULL COMMENT '系统盘',`Size` varchar(255) NOT NULL COMMENT '大小',`Used` varchar(255) NOT NULL COMMENT '已使用',`Avail` varchar(255) NOT NULL COMMENT '可使用',`UsePercent` varchar(255) NOT NULL COMMENT '使用百分比',`Mounted` varchar(255) NOT NULL COMMENT '挂载点',`CreatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`UpdatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

3.4、视图表

CREATE VIEW es_meatinfoview AS SELECTes_meta_info.BusinessIp,es_meta_info.SN,es_meta_info.Brand,es_meta_info.Model,es_meta_info.CPUModel,es_meta_info.CPUNumber,es_meta_info.Memory,es_meta_info.PlatformType,es_meta_info.UseFor,CONCAT_WS('---',es_logicaldisk.Filesystem, es_logicaldisk.Size, es_logicaldisk.UsePercent, es_logicaldisk.Mounted) as FileSystem,es_macaddress.MacAddress,es_pcidevice.PCIDevice,es_product.Program,es_product.PORT,es_meta_info.CreatedAtFROMes_meta_infoLEFT JOIN es_logicaldisk ON es_logicaldisk.BusinessIp = es_meta_info.BusinessIpAND es_logicaldisk.SN = es_meta_info.SNLEFT JOIN es_macaddress ON es_macaddress.BusinessIp = es_meta_info.BusinessIpAND es_macaddress.SN = es_meta_info.SNLEFT JOIN es_pcidevice ON es_pcidevice.BusinessIp = es_meta_info.BusinessIpAND es_pcidevice.SN = es_meta_info.SNLEFT JOIN es_product ON es_product.BusinessIp = es_meta_info.BusinessIpAND es_product.SN = es_meta_info.SNWHEREes_logicaldisk.Filesystem NOT LIKE '%tmpfs%'

4、数据展示

涉及数据库表较多,此处仅展示部分表数据,作为参考,数据IP为之前腾讯云测试公网IP,现已弃用,请勿访问!

4.1、PCI设备信息

4.2、逻辑磁盘信息

4.3、历史记录信息

End

公众号平台更改了推送规则,如果不想错过内容,请点击 “在看” 和 “赞”,感谢支持!

相关文章:

服务器管理平台开发(2)- 设计数据库表

数据库表设计 本篇文章主要对数据管理平台数据库表设计进行介绍,包括单库多表设计、SQL语句、视图构造等 1、整体设计 设备品牌、序列号、型号等使用业务主表进行记录,逻辑磁盘、PCI设备可能出现1对N的情况,分别使用PCI设备表、Mac地址表、逻…...

Python基础知识:整理13 利用pyecharts生成折线图

首先需要安装第三方包pyecharts 1 基础折线图 # 导包,导入Line功能构建折线图对象 from pyecharts.charts import Line # 折线图 from pyecharts.options import TitleOpts # 标题 from pyecharts.options import LegendOpts # 图例 from pyecharts.options im…...

java项目之家政服务中介网(ssm)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的家政服务中介网。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 管理员:首页、个人中…...

Spark的内核调度

目录 概述 RDD的依赖 DAG和Stage DAG执行流程图形成和Stage划分 Stage内部流程 Spark Shuffle Spark中shuffle的发展历程 优化前的Hash shuffle 经过优化后的Hash shuffle Sort shuffle Sort shuffle的普通机制 Job调度流程 Spark RDD并行度 概述 Spark内核调度任务: 1…...

C++代码重用:继承与组合的比较

目录 一、简介 继承 组合 二、继承 三、组合 四、案例说明 4.1一个电子商务系统 4.1.1继承方式 在上述代码中,Order类继承自User类。通过继承,Order类获得了User类的成员函数和成员变量,并且可以添加自己的特性。我们重写了displayI…...

暴打小苹果

欢迎来到程序小院 暴打小苹果 玩法:鼠标左键点击任意区域可发招暴打,在苹果到达圆圈时点击更容易击中, 30秒挑战暴打小苹果,打中一次20分,快去暴打小苹果吧^^。开始游戏https://www.ormcc.com/play/gameStart/247 htm…...

【BetterBench】2024年都有哪些数学建模竞赛和大数据竞赛?

2024年每个月有哪些竞赛? 2024年32个数学建模和数据挖掘竞赛重磅来袭!!! 2024年数学建模和数学挖掘竞赛时间目录汇总 一月 (1)2024年第二届“华数杯”国际大学生数学建模竞赛 报名时间:即日起…...

Vue-9、Vue事件修饰符

1、prevent 阻止默认事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>事件修饰符</title><!--引入vue--><script type"text/javascript" src"https://cdn.jsdeliv…...

前端面试题集合六(高频)

1、vue实现双向数据绑定原理是什么&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…...

使用Pygame库创建了一个窗口,并在窗口中加载了一个名为“ball.png“的图片,通过不断改变物体的位置,实现了一个简单的动画效果

import pygame import sys# 初始化Pygame pygame.init()# 创建窗口 screen pygame.display.set_mode((640, 480))# 加载图片 image pygame.image.load("ball.png")# 将物体初始位置设为屏幕左上角 x 0 y 0# 游戏循环 while True:# 处理事件for event in pygame.e…...

常见的AdX程序化广告交易模式有哪些?媒体如何选择恰当的交易模式?

程序化广告的核心目的是&#xff1a;让需求方能自由地选择流量与出价&#xff0c;程序化广告在数字广告投放中的主导地位日益巩固。 程序化广告“交易模式”有哪些&#xff1f;以下是详细解读&#xff0c;帮助媒体选择恰当的交易方式&#xff0c;从而实现广告价值的最大化。 …...

VCG 网格平滑之Laplacian平滑

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 由于物理采样过程固有的局限性,三维扫描仪获得的网格通常是有噪声的。为了消除这种噪声,所谓的平滑算法被开发出来。这类方法有很多,VCG主要为我们提供了一种是较为经典的Laplace平滑算法,这个方法很多库都有实…...

Jupyter Markdown格式

穿插在程序中&#xff0c;太复杂了喧宾夺主&#xff0c;太简单了不如注释。这样就刚刚好&#xff1a; Headers # header 1 ## header 2 ### header 3 #### header 4Output: header 1 header 2 header 3 header 4 2. Horizontal Line Use any of three to draw a horizon…...

Vue3 实时显示时间

记录一下代码&#xff0c;方便以后使用 参考的文章链接 做了以下修改 修改了formateDate方法中传入参数这个不合理的地方给定时器增加了间隔时间增加了取消定时器的方法 <!-- template中的代码 --> <span>当前时间&#xff1a;{{ nowTime }}</span>// sc…...

详解Java多线程之循环栅栏技术CyclicBarrier

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;工作中&#xff0c;咱们经常会遇到需要多个线程协同工作的情况。CyclicBarrier&#xff0c;直译过来就是“循环屏障”。它是Java中用于管理一组线程&#xff0c;并让它们在某个点上同步的工具。简单来说&#xf…...

ebpf学习

学习ebpf相关知识 参考资料: awesome-ebpf 文章目录 初识准备ebpf.io介绍cilium的介绍内核文档Brendan Greggs Blog 的介绍书籍Learning eBPFWhat is eBPF? 交互式环境视频 基础知识学习学习环境搭建书籍阅读 项目落地流程整理环境搭建内核编译bcc环境变量zliblibelflibbpflib…...

【Linux】Linux系统编程——ls命令

【Linux】Linux 系统编程——ls 命令 1.命令概述 ls 命令是 Linux 和其他类 Unix 操作系统中最常用的命令之一。ls 命令是英文单词 list 的缩写&#xff0c;正如 list 的意思&#xff0c;ls 命令用于列出文件系统中的文件和目录。使用此命令&#xff0c;用户可以查看目录中的…...

QA面试题

1、质量保证(QA)是什么&#xff1f; QA代表质量保证。QA 是一组活动&#xff0c;旨在确保开发的软件满足 SRS 文档中提到的所有规范或要求。QA 遵循 PDCA 循环&#xff1a; 计划/Plan - 计划是质量保证的一个阶段&#xff0c;组织在此阶段确定构建高质量软件产品所需的过程。做…...

【国产mcu填坑篇】华大单片机(小华半导体)一、SPI的DMA应用(发送主机)HC32L136

最近需要用华大的hc32l136的硬件SPIDMA传输&#xff0c;瞎写很久没调好&#xff0c;看参考手册&#xff0c;瞎碰一天搞通了。。。 先说下我之前犯的错误&#xff0c;也是最宝贵的经验&#xff0c;供参考 没多看参考手册直接写&#xff08;即使有点烂仍然提供了最高的参考价值。…...

【前后端的那些事】treeSelect树形结构数据展示

文章目录 tree-selector1. 新增表单组件2. 在父组件中引用3. 父组件添加新增按钮4. 树形组件4.1 前端代码4.2 后端代码 前言&#xff1a;最近写项目&#xff0c;发现了一些很有意思的功能&#xff0c;想写文章&#xff0c;录视频把这些内容记录下。但这些功能太零碎&#xff0c…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代&#xff0c;传统本地存储因容量限制、管理复杂等问题&#xff0c;已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性&#xff0c;成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理&#xff0c;云存储正重塑数据存储与…...