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 点击次数 是

相关推荐
..过云雨27 分钟前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
廋到被风吹走1 小时前
【数据库】【Oracle】分区表与大表设计
数据库·oracle
南山乐只1 小时前
【Spring AI 开发指南】ChatClient 基础、原理与实战案例
人工智能·后端·spring ai
㳺三才人子2 小时前
初探 Spring Framework OncePerRequestFilter
spring boot·spring·junit
这是程序猿2 小时前
基于java的ssm框架学生作业管理系统
java·开发语言·spring boot·spring·学生作业管理系统
努力的小雨2 小时前
从“Agent 元年”到 AI IDE 元年——2025 我与 Vibe Coding 的那些事儿
后端·程序员
源码获取_wx:Fegn08953 小时前
基于springboot + vue小区人脸识别门禁系统
java·开发语言·vue.js·spring boot·后端·spring
wuxuanok3 小时前
Go——Swagger API文档访问500
开发语言·后端·golang
用户21411832636024 小时前
白嫖Google Antigravity!Claude Opus 4.5免费用,告别token焦虑
后端
爬山算法4 小时前
Hibernate(15)Hibernate中如何定义一个实体的主键?
java·后端·hibernate