团队项目数据库设计心得

发布时间 2023-11-10 14:36:42作者: 袁永杰

1.分析业务需求

我们的团队项目是图数据库的可视化管理系统,作为一个数据库,提供关于用户对数据库的各种操作,包括增删查改备份还原等,当然作为一个系统,需要注册登录等功能,还得提供管理用户的管理系统。以及各种其他的拓展功能。

2.实体分析

想要设计数据库,首先要知道需要什么实体。

首先应该是根据该系统的基本要求进行分析,作为一个系统,需要登录和注册等功能,并且每个用户的内容应该是不同的,所以需要一个公户表用于存储用户的账号密码以及基本的注册信息,而作为面向数据库的系统,也需要一个数据库的表,存储关于各个数据库的内容。作为一个联网的分布式数据库,还需要记录所有节点的信息,所以需要一个节点表。这三个表是整个数据库最为核心的部分。

其余实体应该根据要拓展的内容以及该三张表进行设计。

由于需要一个社区的功能,就需要一个社区的文章表,评论表,需要一个交友的聊天功能,则需要一个好友表和聊天内容表。需要可以查看日志,则需要一个日志表来存储,想要可视化则需要一个表来存储图的url。

3.关系分析

这一步要明确所有表的主键和外键是什么,哪个表又能作为另一个表的依赖。首先应该每个表的主键是非常好确定的,所有表都有一个唯一索引的id位。而外键无非是根据所属依赖的实体进行分析,例如任何一个数据库都需要一个创建者,那么整个创建者就是某个用户,所以他需要一个用户Id来作为外键,并且一个用户可以拥有多个数据库,每个数据库必须有一个创建者(用户)。

4.通过关系反查

数据库存在节点上,每个数据库可能由多个节点存储,每个节点也可能存储多个数据库,这是个多对多的关系,需要一个新的 数据库-节点表来进行存储,根据这种反查的关系可以找到漏掉的表。

5.通过上述操作得到一个完整的数据库设计:

用户的登录注册通过用户表完成

 管理员表

数据库与节点

包括数据库表,节点表,数据库与节点表,图表,且数据库表以用户id作为外键。

 数据库日志

 

Peg软件日志

 

 实现论坛

包括论坛表和留言表。

交友功能

包括好友表和对话表

 

整体设计结果: