数据库表设计
本篇文章主要对数据管理平台数据库表设计进行介绍,包括单库多表设计、SQL语句、视图构造等
1、整体设计
-
设备品牌、序列号、型号等使用业务主表进行记录,逻辑磁盘、PCI设备可能出现1对N的情况,分别使用PCI设备表、Mac地址表、逻辑磁盘表、应用程序表、登录日志表进行记录
-
构建虚拟视图统一查询,多表联合,使用业务IP+SN序列号作为设备唯一标识
-
增加历史记录表,对所有表数据的更新删除操作进行记录,方便回溯
2、库表设计
涉及数据库表较多,此处仅展示部分表结构设计
2.1、业务主表
字段名称 | 字段类型 | 解释 |
Id | 字段类型 | 解释 |
BusinessIp | int | 业务Ip地址 |
SN | string | 序列号 |
Brand | string | 品牌 |
Model | string | 型号 |
CPU | timestamp | CPU |
Memory | timestamp | 内存 |
PlatformType | string | 平台类型 |
UseFor | string | 用途 |
CreatedAt | timestamp | 创建时间 |
UpdatedAt | timestamp | 修改时间 |
2.2、PCI设备表
字段名称 | 字段类型 | 解释 |
Id | int | 自增ID |
BusinessIp | string | 业务Ip地址 |
SN | string | 序列号 |
PCIDevice | string | PCI设备表 |
CreatedAt | timestamp | 创建时间 |
UpdatedAt | timestamp | 修改时间 |
2.3、MAC地址表
字段名称 | 字段类型 | 解释 |
Id | int | 自增ID |
BusinessIp | string | 业务Ip地址 |
SN | string | 序列号 |
MacAddress | string | MAC地址 |
CreatedAt | timestamp | 创建时间 |
UpdatedAt | timestamp | 修改时间 |
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
公众号平台更改了推送规则,如果不想错过内容,请点击 “在看” 和 “赞”,感谢支持!