Spring Boot框架下的知识管理与多维分类

4 系统设计

系统分析接下来的操作步骤就是系统的设计,这部分内容也是不能马虎对待的。因为生活都是在不断产生变化,人们需求也是在不断改变,开发技术也是在不断升级,所以程序也需要考虑在今后可以方便进行功能扩展,完成升级。程序也需要具备大容量以及对其它软硬件的适应能力,而不仅仅是满足现有用户提出来的功能需求,程序在设计期间始终要以发展的理念来进行,要让程序的开发技术上具备先进性的特点,也要让程序开发成本降低,以及让程序后期运行使用时易于维护。

4.1 系统结构设计

本程序在设计结构选择上首选B/S,也是为了满足程序今后升级便利,以及程序低维护成本的要求。本程序的网络拓扑设计也会在下图展示,通过图形的方式来描述更容易理解。

图4.1 系统网络拓扑设计图

4.2系统功能模块设计

程序的功能在系统分析这部分已经确定了,这部分主要还是针对程序功能进行更加详细的设计,设计成果使用结构图展示直观明了,也更容易让人理解。绘制结构图采用的工具是Visio,使用它可以快速绘制出不同角色拥有的功能结构。

图4.2 功能结构图

4.3数据库设计

对程序的功能分析与结构设计之后,也要对程序数据存储的工具进行选择,本程序选用的数据存储仓库是Mysql,选用这个工具就需要根据该数据库的特点进行数据库文件的创建,并设计与之对应的数据表。

4.3.1数据库E-R图

设计一个数据库,不仅包含了数据库实体的设计,也包括了数据库表的结构设计,此部分内容设计的就是确认数据库的实体,并在此基础上对每个实体应该有的属性值进行分析设计,这些确认好的属性值对接下来的数据表的设计也是有很大帮助的,因为它们代表数据表里面的字段值。通常每个程序的数据库里面都具备用户这样的一个数据表。那么在分析用户这个实体的时候,都会设计出它的属性,有最基本的登录程序的账号属性,有用户的姓名属性,有用户的电话或联系地址属性等内容。一旦确认实体具备的属性之后,就可以采用相应的设计软件绘画出实体属性图,或者是实体之间的E-R图。设计E-R模型的软件有很多,这里列举常用的几个,一个是PowerDesigner,一个是Navicat绘制E-R模型,本设计模块用到的还是之前课堂上就了解并接触的Visio工具,这个工具跟办公软件Word,Excel一样都属于Office里面的一部分。使用Visio工具不仅在软件安装上快捷高效,而且它不会占用很多计算机的存储空间。

(1)下图是知识信息评论表实体和其具备的属性。

知识信息评论表实体属性图

(2)下图是用户实体和其具备的属性。

用户实体属性图

(3)下图是知识分类实体和其具备的属性。

知识分类实体属性图

(4)下图是收藏表实体和其具备的属性。

收藏表实体属性图

(5)下图是知识信息实体和其具备的属性。

知识信息实体属性图

(6)下图是用户表实体和其具备的属性。

用户表实体属性图

4.3.2 数据库表结构

在上述内容中,已经设计出相应的E-R模型,就可以在数据库里面根据各个实体创建相应的数据表,不过在初次使用数据库工具的时候,是需要创建一个针对程序的数据库文件,有了此步操作之后,才在刚创建的数据库文件里面创建数据表,创建数据表需要涉及到字段的设计,主键的设计,字段长度与类型的设计等内容,只有设计好的数据表结构才可以按照此规则存放对应的程序数据。这里举个例子,就拿上面提到的用户实体来说吧,用户具备的属性值,比如账号,比如联系方式与电话等都可以设计成该用户数据表里面的字段,然后对这些字段设计其数据类型,长度,并选择该表的主键作为此用户数据表的唯一标志。数据库里面的各个数据表都有它们的主键,这样也是为了方便区分各个数据表。

表4.1配置文件表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 name String 配置参数名称 是

3 value String 配置参数值 是

表4.2知识信息评论表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 addtime Date 创建时间 是

3 refid Integer 关联表id 是

4 userid Integer 用户id 是

5 nickname String 用户名 是

6 content String 评论内容 是

7 reply String 回复内容 是

表4.3收藏表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 addtime Date 创建时间 是

3 userid Integer 用户id 是

4 refid Integer 收藏id 是

5 tablename String 表名 是

6 name String 收藏名称 是

7 picture String 收藏图片 是

表4.4token表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 userid Integer 用户id 是

3 username String 用户名 是

4 tablename String 表名 是

5 role String 角色 是

6 token String 密码 是

7 addtime Date 新增时间 是

8 expiratedtime Date 过期时间 是

表4.5用户表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 username String 用户名 是

3 password String 密码 是

4 role String 角色 是

5 addtime Date 新增时间 是

表4.6用户表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 addtime Date 创建时间 是

3 yonghuming String 用户名 是

4 mima String 密码 是

5 xingming String 姓名 是

6 touxiang String 头像 是

7 xingbie String 性别 是

8 shouji String 手机 是

表4.7知识分类表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 addtime Date 创建时间 是

3 zhishifenlei String 知识分类 是

表4.8知识信息表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 addtime Date 创建时间 是

3 zhishibiaoti String 知识标题 是

4 zhishifenlei String 知识分类 是

5 biaoqian String 标签 是

6 fengmiantu String 封面图 是

7 zhishijianjie String 知识简介 是

8 zhishishipin String 知识视频 是

9 zhishifujian String 知识附件 是

10 zhishineirong String 知识内容 是

11 faburiqi Date 发布日期 是

12 clicktime Date 最近点击时间 是

13 clicknum Integer 点击次数 是

相关推荐
颜淡慕潇35 分钟前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
向前看-8 小时前
验证码机制
前端·后端
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭9 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
超爱吃士力架10 小时前
邀请逻辑
java·linux·后端
百度智能云技术站11 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
AskHarries11 小时前
Spring Cloud OpenFeign快速入门demo
spring boot·后端
梦想平凡12 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
isolusion12 小时前
Springboot的创建方式
java·spring boot·后端
Yvemil713 小时前
《开启微服务之旅:Spring Boot Web开发举例》(一)
前端·spring boot·微服务