Spring Boot视频网站:安全与可扩展性设计

embedded/2024/10/20 17:55:11/

4 系统设计
4.1系统概要设计
视频网站系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4.1就是开发出来的程序工作原理图。
在这里插入图片描述

图4.1 程序工作的原理图
4.2系统功能结构设计
下图就是系统功能结构图。
在这里插入图片描述

图4.1 系统功能结构图
4.3数据库设计
4.3.1数据库E-R图设计
程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。
下面就展示视频网站系统的实体E-R图。
(1)下图就是公告实体E-R图
在这里插入图片描述

图4.7 公告实体E-R图
(2)下图就是留言板实体E-R图
在这里插入图片描述

图4.8 留言板实体E-R图
(3)下图就是视频类型实体E-R图
在这里插入图片描述

图4.9 视频类型实体E-R图
4.3.2 数据库表结构设计
本次程序开发选用的数据库管理工具是MySQL数据管理工具,使用它存放数据也需要创建程序对应的数据库文件,并命名刚创建的数据库文件,有了数据库也需要创建各种数据表来充实数据库,在数据表的创建中,不仅需要对数据表命名,也需要对数据表的字段进行设计,包括每个数据表里面需要设置的字段名称,字段对应的数据类型信息,字段的主键设置这个也是不可缺少的,因为每个数据表里面的主键就是标记着这个数据表跟其他数据表相区分的唯一标志。就相当于生活中的每个人都有姓名,但是上网搜索自己的名字,会发现全国上下有很多人的名字跟自己的名字一模一样,包括姓氏以及名字,区分每个人的唯一信息就是每个人的身份证号信息,主键在数据表里面也是起着这样的重要作用。下面就介绍本次开发的程序视频网站系统的数据表结构信息。
表4.1 视频分享评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
表4.2 视频排名评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
表4.3 交流论坛
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
title varchar(200) 是 NULL 帖子标题
content longtext 否 帖子内容
parentid bigint(20) 是 NULL 父节点id
userid bigint(20) 否 用户id
username varchar(200) 是 NULL 用户名
isdone varchar(200) 是 NULL 状态
表4.4 留言板
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 留言人id
username varchar(200) 是 NULL 用户名
content longtext 否 留言内容
reply longtext 是 NULL 回复内容
表4.5 平台公告
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
biaoti varchar(200) 是 NULL 标题
neirong longtext 是 NULL 内容
faburen varchar(200) 是 NULL 发布人
faburiqi date 是 NULL 发布日期
tupian varchar(200) 是 NULL 图片
表4.6 视频分享
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shipinmingcheng varchar(200) 是 NULL 视频名称
leixing varchar(200) 是 NULL 类型
shipinjianjie longtext 是 NULL 视频简介
shipinneirong longtext 是 NULL 视频内容
bofangshizhang varchar(200) 是 NULL 播放时长
zaixianshipin varchar(200) 是 NULL 在线视频
faburiqi date 是 NULL 发布日期
fengmian varchar(200) 是 NULL 封面
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
sfsh varchar(200) 是 否 是否审核
shhf longtext 是 NULL 审核回复
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
clicktime datetime 是 NULL 最近点击时间
clicknum int(11) 是 0 点击次数
表4.7 视频类型
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
leixing varchar(200) 是 NULL 类型
表4.8 视频排名
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shipinmingcheng varchar(200) 是 NULL 视频名称
leixing varchar(200) 是 NULL 类型
shipinjianjie longtext 是 NULL 视频简介
bofangliang int(11) 是 NULL 播放量
bofangshizhang varchar(200) 是 NULL 播放时长
zaixianshipin varchar(200) 是 NULL 在线视频
fabuzhe varchar(200) 是 NULL 发布者
faburiqi date 是 NULL 发布日期
fengmian varchar(200) 是 NULL 封面
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
表4.9 收藏表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
refid bigint(20) 是 NULL 收藏id
tablename varchar(200) 是 NULL 表名
name varchar(200) 否 收藏名称
picture varchar(200) 否 收藏图片
表4.10 管理员表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
表4.11 用户
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
zhanghao varchar(200) 否 账号
mima varchar(200) 否 密码
xingming varchar(200) 否 姓名
xingbie varchar(200) 是 NULL 性别
shouji varchar(200) 是 NULL 手机
youxiang varchar(200) 是 NULL 邮箱
shenfenzheng varchar(200) 是 NULL 身份证

6系统测试
为了保证所开发出来的系统质量过关,让所开发出来的系统具备可靠性并能够投入运行使用,这就需要进行系统开发的最后一个关键步骤,那就是系统测试。可以说系统测试就是对系统开发前面的步骤,比如系统分析与设计等进行复查。尽管在程序开发期间,人们一直很注意避免系统出错,但这样还是会让很多的潜在的系统缺陷不容易被人们肉眼察觉,只有经过反复不断地测试才能及时暴露系统的运行问题,这个时候进行系统问题的纠正就能真正避免财产损失,截止到目前,市面上还没有从根本上解决开发出的程序的正确性证明。所以发现系统的错误以及缺陷的重要手段还是要依赖于系统测试。
6.1 本系统测试 
本系统的测试结合了计算机的软件以及硬件系统,对程序的全部功能,还有程序的运行稳定性等性能上进行了测试,测试过程中也再次对程序配套数据库的连接问题进行了系统化地测试操作。接下来就选取系统的一些功能进行测试演示。
6.1.1登录功能测试
程序的登录界面实际上就是为了系统的安全,需要验证用户的身份信息而进行设置的,用户的身份信息就是依靠自己的账号,还有登录密码信息进行验证。用户的登录信息有一个存在问题,系统就会一直停在登录界面,并给出错误原因的提示。表6.1 就是登录功能测试的数据。
表6.1 登录功能测试的数据
用户名 密码 角色 结果
aaa bbb 管理员角色 失败登录
bbb aaa 管理员角色 失败登录
aaa aaa 管理员角色 成功登录

6.1.2修改密码功能测试
修改密码其实就是害怕用户的密码信息遭到泄露,导致系统的安全系数下降,因此,就要要求用户每个月修改一次密码。表6.2就是修改密码功能测试数据。
表6.2 修改密码功能测试数据
旧密码 新密码 结果
aaa 修改失败
bbb ccc 修改失败
aaa ccc 修改成功
6.2测试结果分析
经过了程序开发的最后一个测试环节,对开发的程序软件视频网站系统也下了定论,在测试期间程序的功能能够跟最开始的用户需求文档保持一致性,程序的界面设计以及数据库设计也都是参照用户的需求完成设计的。另外,程序开发也充分解决了系统的升级以及长时间保持稳定运行的问题,说明该程序软件还是挺可靠的,进行验收上交也是达标的。总的说来,截止到目前,该视频网站系统功能可靠,有着简单的操作流程,能够从一定程度上解决数据信息操作方面出现的各种问题。


http://www.ppmy.cn/embedded/129052.html

相关文章

从零开始学PHP之输出语句变量常量

一、 输出方式 在 PHP 中输出方式: echo,print,print_r,var_dump 1、echo和print为php的输出语句 2、var_dump,print_r为php的输出函数 (这里不做介绍)echo 和 print 区别 1、echo - 可以输出…

MySql的redo log

文章目录 什么是redo logredo log 组成数据更新流程两阶段提交binlog为什么要两阶段提交结语 数据库事务的4个特性之一的持久性是数据库保证数据一致性的关键,mysql为了确保事务在系统崩溃后也能恢复,引入了redo log 重做日志这一机制。 什么是redo log…

Vue request请求拦截 全局拦截Promise后 api请求捕获异常catch

request.js全局拦截响应结果 else if (res.code 40012) { // 权限不足Message({message: res.msg || Error,type: error,duration: 3 * 1000})return Promise.reject(new Error(res.msg || Error))} api请求后加catch捕获异常 sysUserApi.disableById(row.userId).then(re…

可能是NextJs(使用ssr-api route)打包成桌面端的最佳解决方式

可能是NextJs(使用ssr/api route)打包成桌面端的最佳解决方式 前言 在我使用nextron(nextelectron)写了一个项目后打包发现nextron等一系列桌面端框架在生产环境是不支持next的ssr也就是api route功能的这就导致我非常难受,耗费了小半个月结…

AI开发-三方库-PyTorch

1 需求 2 接口 3 示例 4 参考资料 PyTorch 狂肝两万字带你用pytorch搞深度学习!!!_狂干两万字带你用pytorch搞深度学习-CSDN博客

004_django基于Hadoop的短视频数据分析的设计与实现2024_xui698zi

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

TDesign腾讯高保真Axure RP中后台交互模板及元件组件库

TDesign腾讯Axure RP中后台交互模板部件及元件组件库素材基于腾讯TDesign素材库,进行二次创作,并非官网的免费静态版。具体内容,可以看右侧的预览按钮,确认内容。 元件库部分包含以下模块: 全局样式 基础 布局 导航 …

开发语言最佳实践

目录 一、开发IOS最好的语言是什么? 二、开发安卓的最好语言是什么? 三、开发鸿蒙应用最好的语言是什么? 四、做大模型训练最好的开发语言是什么? 一、开发IOS最好的语言是什么? 开发iOS最好的语言是Swift。Swift…