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

数据库表设计

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

1、整体设计

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

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

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

服务器管理平台开发(2)- 设计数据库表_第1张图片

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 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设备信息

服务器管理平台开发(2)- 设计数据库表_第2张图片

4.2、逻辑磁盘信息

服务器管理平台开发(2)- 设计数据库表_第3张图片

4.3、历史记录信息

服务器管理平台开发(2)- 设计数据库表_第4张图片

End

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

服务器管理平台开发(2)- 设计数据库表_第5张图片

你可能感兴趣的:(服务器管理平台,数据库,服务器,oracle)