美文网首页Laboratory
1.设计数据库结构 | 基于图数据库的资产管理

1.设计数据库结构 | 基于图数据库的资产管理

作者: MisterCH | 来源:发表于2020-05-05 12:09 被阅读0次

前几天和同事讨论了一下CMDB系统的资产台账部分的功能,设计了几个mysql表准备开始开发。但是我始终不是特别喜欢Mysql这种关系型数据库,一方面是觉得太重了(因为公司使用mybatis,还要写xml,mapper等),另一方面是我觉得这种资产之间关系在关系型数据库里表达得不是那么直观。是否有和现实简单映射的直观存储方式呢?想起之前面试的时候有人和我说起过图数据库,也就去稍微研究了下图数据库neo4j。

稍微研究并试验了一下图数据库,是真的直观且有趣啊。就决定自己玩一下,建立一个简单的资产管理系统。

趁着五一有点小时间,梳理了一下需求,今天先做一个简单的数据库设计,目前收集到的需求不全,所以肯定有一些疏漏,只能后续陆续补充了。

需求梳理

  1. 需要记录每个服务器的IP信息,目前考虑以虚拟机为主
  2. 记录每台服务器上安装部署的软件信息(操作系统、数据库、中间件),包括版本、用户名和密码,如果是采购的,需要记录供应商和合同到期时间
  3. 记录服务器和项目的从属关系,可以查询出服务器所属的项目、维护人员、申请人员、部门等
  4. 记录服务器的部署地点(多云环境)
  5. 记录火墙信息(ip,端口,到期时间,协议)
  6. 无需记录ESX或网络路由器等信息,直接从虚拟机层面开始即可

结构设计

图数据库关系结构

下表列出所有实体的含义,忽略neo4j自带的id属性

实体 属性 说明
Person name, sso_id 记录人员的姓名和认证ID
Department name 记录部门的信息
Project name 项目名称
Application name 应用名称,一个项目可能包含多个应用
Server in_ip, out_ip, cpu, mem, disk 服务器信息
Env name 部署地
Component name, version 技术组件信息
Supplier name 记录第三方供应商信息,如果是开源则标记license

下表列出所有关系:

关系名称 关系头 关系尾 属性 说明
MEMBER_OF Person Department role 人是部门的一员,role标记部门经理
WORK_IN Person Project role 人作为项目经理/开发等角色在项目中干活
INTRODUCE Person Component date 人何时引入技术组件
APPLY Person Server date 人何时申请了服务器
MANAGED_BY Server Person username, password 服务器由哪个人运维,如何登陆
SUPPLIES Supplier Component type, contract_start, contract_end 供应商如何提供服务,合同时间
CONTAINS_APP Project Application 应用和项目的从属
RUN_IN Application Server purpose, usage, module 应用使用服务器具体用途
INSTALLED_IN Component Server path, username, password, cluster_type, cluster_role 在服务器上,技术组件是如何部署的
DEPLOY_IN Server Env 服务器部署在哪个云环境上
FIREWALL Server Server from_ip, to_ip, port, protocol 服务器之间的火墙信息

设计完表结构以后,下一步先找点数据建立一个简单的模型,然后把java跑通,有以下功能需要验证:

  1. 节点数据的增删改查
  2. 关系的增删改查

相关文章

  • 1.设计数据库结构 | 基于图数据库的资产管理

    前几天和同事讨论了一下CMDB系统的资产台账部分的功能,设计了几个mysql表准备开始开发。但是我始终不是特别喜欢...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

  • PowerDesigner生成数据库设计文档

    1.说明 使用PowerDesigner设计数据库表,基于PowerDesigner设计数据库表[https://...

  • PowerDesigner生成数据库刷库脚本

    1.说明 使用PowerDesigner设计数据库表,基于PowerDesigner设计数据库表[https://...

  • E-R图绘制

    数据库的设计6个阶段:1、需求分析2、概念结构设计3、逻辑结构设计4、数据库的实施5、数据库的运维 1、E-R图绘...

  • Power Designer—数据库设计步骤

    数据库设计步骤 需求分析 — 概念结构设计 — 逻辑结构设计 — 物理结构设计 — 数据库的建立和测试 — 数据库...

  • 计算机二级java程序语言设计

    公共基础 数据库 数据库设计过程主要包括需求分析、概要结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运...

  • 2.4系统数据库设计

    抽象数据表 数据库的设计按照用户的要求在某一具体的数据库系统里面,设计结构,建立数据库。 ER图 数据库字段 1....

  • 2018-10-06

    1.外模式_用户。模式_逻辑结构。内模式_物理结构 2.数据库(DB) 数据库管理系统(DBMS) 数据库系统(D...

  • mysql性能与优化

    数据库结构优化 数据库结构设计 mysql复制

网友评论

    本文标题:1.设计数据库结构 | 基于图数据库的资产管理

    本文链接:https://www.haomeiwen.com/subject/fsxmghtx.html