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

发布时间:2024年01月12日

数据库表设计

本篇文章主要对数据管理平台数据库表设计进行介绍,包括单库多表设计、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 SELECT
    es_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.CreatedAt
    FROM
    es_meta_info
    LEFT JOIN es_logicaldisk ON es_logicaldisk.BusinessIp = es_meta_info.BusinessIp
    AND es_logicaldisk.SN = es_meta_info.SN
    LEFT JOIN es_macaddress ON es_macaddress.BusinessIp = es_meta_info.BusinessIp
    AND es_macaddress.SN = es_meta_info.SN
    LEFT JOIN es_pcidevice ON es_pcidevice.BusinessIp = es_meta_info.BusinessIp
    AND es_pcidevice.SN = es_meta_info.SN
    LEFT JOIN es_product ON es_product.BusinessIp = es_meta_info.BusinessIp
    AND es_product.SN = es_meta_info.SN
    WHERE
    es_logicaldisk.Filesystem NOT LIKE '%tmpfs%'

4、数据展示

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

4.1、PCI设备信息

4.2、逻辑磁盘信息

4.3、历史记录信息

End

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

文章来源:https://blog.csdn.net/qq_29893385/article/details/135560265
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。