当前位置: 首页 > 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…...

华为OD机试 - 最长子字符串的长度(二)(Java JS Python C)

题目描述 给你一个字符串 s,字符串 s 首尾相连成一个环形,请你在环中找出 l、o、x 字符都恰好出现了偶数次最长子字符串的长度。 输入描述 输入是一串小写的字母组成的字符串 输出描述 输出是一个整数 备注 1 ≤ s.length ≤ 5 * 10^5s 只包含小写英文字母用例 输入alolob…...

【VRTK】【Unity】【游戏开发】更多技巧

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 本篇将较为零散但常用的VRTK开发技巧集合在一起,主要内容: 创建物理手震动反馈高亮互动对象【创建物理手】 非物理手状态下,你的手会直接…...

Spark 读excel报错,scala.MatchError

Spark3详细报错: scala.MatchError: Map(treatemptyvaluesasnulls -> true, location -> viewfs://path.xlsx, inferschema -> false, addcolorcolumns -> true, header -> true) (of class org.apache.spark.sql.catalyst.util.CaseInsensitiveMap)scala代码…...

【漏洞复现】Office365-Indexs-任意文件读取

漏洞描述 Office 365 Indexs接口存在一个任意文件读取漏洞,攻击者可以通过构造精心设计的请求,成功利用漏洞读取服务器上的任意文件,包括敏感系统文件和应用程序配置文件等。通过利用此漏洞,攻击者可能获得系统内的敏感信息,导致潜在的信息泄露风险 免责声明 技术文章…...

使用Python向RabbitMQ发送JSON数据只需要一个send_json方法

发送JSON数据 通过调用rabbitmq.send_json(channel, user, queueresult)能够更简单的实现发送JSON数据。 生产者 import json import rabbitmq# 建立连接 connection rabbitmq.get_connection()# 创建管道 channel connection.channel()# 创建队列 queue_name "user…...

Gitlab Gitee GitHub 远程仓库显示图片

大家好我是苏麟 , 今天出一期开发之外的如何在远程仓库展示图片 . 以GitLab为例 1.首先我们要把一张图片上传到远程仓库 . 2.第二步,点击图片 3.鼠标右键点击下载左键点击复制连接 4.找到我们要上传的md文件 , 把连接复制到 ( ) 里 , 这样上传md之后就可以看到图片了 . 这期就到…...

JS常用的几种事件

JavaScript常用的几种事件有&#xff1a; 点击事件&#xff1a;当用户点击某个元素时触发&#xff0c;常用于按钮、链接等交互元素。事件名称为"click"。 javascriptbutton.addEventListener(click, function() { alert(按钮被点击了&#xff01;); }); 鼠标移动事…...

代码随想录算法训练营第一天| 27 移除元素 704 二分查找

目录 27 移除元素 704 二分查找 27 移除元素 快指针遍历&#xff0c;慢指针记录 class Solution { public:int removeElement(vector<int>& nums, int val) {int l 0,r 0;for(;r < nums.size();r){if(nums[r] val){}else{nums[l] nums[r];}}return l;} }; …...

深度生成模型(Deep Generative Models)

什么是机器学习 深度生成模型&#xff08;Deep Generative Models&#xff09;是一类利用深度学习方法生成新样本的模型。这些模型通常被用于生成与训练数据集相似的新数据&#xff0c;例如图像、文本或音频。深度生成模型的两个主要类型是生成对抗网络&#xff08;GANs&#…...

C++(20):vector通过erase,erase_if删除符合条件的元素

C++20前,vector可以通过成员函数erase删除迭代器指定的元素,并返回被删除的下一个元素: iterator erase( iterator pos ); iterator erase( iterator first, iterator last ); 1.删除单个元素 #include <vector> #include <iostream> #include <algorithm&…...

做网站什么最赚钱吗/湖南企业竞价优化

在早期的浏览器中&#xff0c;没有创建和销毁中间字符串&#xff0c;在大量字符串连接情况下&#xff0c;数组push技术已被证明远快于使用加法方式。 如今浏览器对字符串的优化已经改变了字符串相连的局面。Safari、Opera、Chrome、Firefox和IE8都在使用加法运算 符上表现出了更…...

枣庄网站建设多少钱/武汉百度推广开户

我们平时在制作PPT的过程中&#xff0c;有的时候要对一些图片进行编辑。例如简单的裁剪、简单地加文字等等。这时候如果电脑里没有图片编辑软件应该怎么办&#xff1f;不急&#xff0c;今天小编就来分享图片编辑新玩法&#xff01;可以替代Photoshop&#xff01;&#xff01;对…...

外卖平台做网站/如何制作网址

对于一个开发者/程序员来说&#xff0c; 阅读软件博客来汲取知识就如吃饭补充能量那样平常。 但是&#xff0c;阅读博客也是要花费时间和精力的&#xff0c;即具有排他性的&#xff1b;该如何甄别和确保阅读高质量博文&#xff0c;来有效汲取营养呢&#xff1f; 1. 从争议性论…...

国外自助建站免费建站平台/百度分公司

首先要安装 Ruby Ruby安装教程http://www.runoob.com/ruby/ruby-installation-windows.html Ruby 官网 http://rubyinstaller.org/downloads/ 安装成功后 在ruby安装目录的bin目录下 的cmd中执行 命令&#xff1a; gem install jekyll 等待安装jekyll...

做网站的公司挣钱吗/都有什么推广平台

UISegmentedControl分段控件代替了桌面OS上的单选按钮。不过它的选项个数非常有限&#xff0c;因为你的IOS设备屏幕有限。当我们需要使用选项非常少的单选按钮时它很合适。 一、创建 UISegmentedControl* mySegmentedControl [[UISegmentedControl alloc]initWithItems:nil]…...

深圳软件公司排行/seo网站推广推荐

2019独角兽企业重金招聘Python工程师标准>>> 本文是MyEclipse方面教程&#xff0c;主要介绍在MyEclipse中该如何设置jsp页面为默认utf-8编码&#xff1f; 在MyEclispe中创建Jsp页面&#xff0c;Jsp页面的默认编码是“ISO-8859-1”&#xff0c;如下图所示&#xff1a…...