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

news2024/10/17 7:09:00

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.coloradmin.cn/o/2216883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Appium环境搭建、Appium连接真机

文章目录 一、安装Android SDK二、安装Appium-desktop三、安装Appium Inspector 一、安装Android SDK 首先需要安装jdk,这里就不演示安装jdk的过程了 SDK下载地址:Android SDK 下载 1、点击 Android SDK 下载 -> SKD Tools 2、选择对应的版本进行下…

mysql 慢查询日志slowlog

慢查询参数 slow log 输出示例 # Time: 2024-08-08T22:39:12.80425308:00 #查询结束时间戳 # UserHost: root[root] localhost [] Id: 83 # Query_time: 2.331306 Lock_time: 0.000003 Rows_sent: 9762500 Rows_examined: 6250 SET timestamp1723127950; select *…

云栖实录 | 智能运维年度重磅发布及大模型实践解读

本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人: 钟炯恩 | 阿里云智能集团运维专家 张颖莹 | 阿里云智能集团算法专家 活动: 2024 云栖大会 AI 可观测专场 -智能运维:云原生大规模集群GitOps实践 2024 …

【c++】c++11多线程开发

2 C多线程 本文是参考爱编程的大丙c多线程部分内容,按照自己的理解对其进行整理的一篇学习笔记,具体一些APi的详细说明请参考大丙老师教程。 代码性能的问题主要包括两部分的内容,一个是前面提到资源的获取和释放,另外一个就是多…

使用rabbitmq-operator在k8s集群上部署rabbitmq实例

文章目录 前言一、rabbitmq-operator二、进行部署1.部署cluster-operator2.创建自己需要的特定命名空间3.创建rabbitmq的instance4.创建nodeport访问 结果验证 前言 使用rabbitmq-operator在k8s集群上部署rabbitmq实例。时区设置为上海 一、rabbitmq-operator 官网地址&#…

数学建模算法与应用 第16章 优化与模拟方法

目录 16.1 线性规划 Matlab代码示例:线性规划求解 16.2 整数规划 Matlab代码示例:整数规划求解 16.3 非线性规划 Matlab代码示例:非线性规划求解 16.4 蒙特卡洛模拟 Matlab代码示例:蒙特卡洛模拟计算圆周率 习题 16 总结…

java代码生成器集成dubbo,springcloud详解以及微服务遐想

摘要 今天终于有了点空闲时间,所以更新了一下代码生成器,修复了用户反馈的bug,本次更新主要增加了dubbo和springcloud脚手架的下载功能,架子是本人亲自搭建,方便自由扩展或者小白学习使用,你也许会问为什么…

红日安全vulnstack (二)

目录 环境搭建 网卡设置 修改Kali网段 IP 分布 WEB渗透 Weblogin服务开启 漏洞扫描 CVE工具利用 MSF上线 内网渗透 域内信息收集 凭证横向移动 权限维持 黄金票据 参考文章 https://www.cnblogs.com/bktown/p/16904232.htmlhttps://blog.csdn.net/m0_75178803/ar…

leetcode54:螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:matrix [[1,2,3,…

hackmyvm-Hundred靶机

主机发现 sudo arp-scan -l 以sudo权限执行arp-scan -l 扫描并列出本地存在的机器,发现靶机ip为192.168.91.153 nmap扫描 端口发现 21/tcp open ftp 22/tcp open ssh 80/tcp open http web信息收集 我们先尝试一下ftp端口的匿名登录 FTP:是文件传输协议的端…

个人博客系统_测试报告

1.项目背景 基于SSM框架实现的个人博客系统,由五个页面构成:用户登录页、博客发表页、博客编辑页、博客列表页以及博客详情页。登录即可查看自己与其他用户已发布的博客,也可以使用自己的账号发布博客,通过使用Selenium定位web元…

《人工智能:CSDN 平台上的璀璨之星》

一、CSDN 上的 AI 热门话题 GPT-3 作为 CSDN 上的热门话题,其应用极为广泛。GPT-3 是 OpenAI 开发的一种基于 Transformer 架构的大规模预训练语言模型,拥有惊人的 1750 亿个参数。它具有多任务处理能力,能够执行多种自然语言处理任务&#x…

保护企业终端安全,天锐DLP帮助企业智能管控终端资产

为有效预防员工非法调包公司的软硬件终端资产,企业管理员必须建立高效的企业终端安全管控机制,确保能够即时洞察并确认公司所有软硬件资产的状态变化。这要求企业要有一套能够全面管理终端资产的管理系统,确保任何未经授权的资产变动都能被迅…

Ajax处理错误信息(处理响应报文)

<!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><form action""><div>用户名<input type"text" class"username"></div>…

【2024-10-16】某小破站w_rid参数分析

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、参数分析三、代码一、前言 看一下小破站的参数加密 网址: aHR0cHM6Ly9zcGFjZS5iaWxpYmlsaS5jb20vNDA1Nz…

c++就业1.1.3海量数据去重的Hash与BloomFilter

找到具体的位置 通过映射 当前需要插入的指向 上一层最后一个 方便头插 布隆过滤器 - 查找是否有这个值 但是不能够返回value 服务器和过滤器进行网络交互 我们要知道这个key在不在mysql中 去查询并且在mysql中进行查询 所以在服务器部署布隆过滤器 为了节约内存 用位图 对str…

Linux权限理解及环境基础开发工具使用

前言 Linux中有两种用户&#xff0c;一种是root用户&#xff0c;另一种是普通用户&#xff0c;二者的权限不一样&#xff0c;即能做的事情不一样。下面我们来细讲一下这些不同。 root用户能在Linux系统下做任何事情&#xff0c;而普通用户只能做有限的事情。 root用户的命令…

FPGA采集adc,IP核用法,AD驱动(上半部分)

未完结&#xff0c;明天补全 IP核&#xff1a;集成的一个现有的模块 串口写好后基本不会再修改串口模块内部的一些逻辑&#xff0c;将串口.v文件添加进来&#xff0c;之后通过他的上层的接口去对他进行使用&#xff0c;所以我们打包IP&#xff0c;之后就不用去添加源文件了&a…

Pollard‘s p-1算法

概述 光滑数 (Smooth number)&#xff1a;指可以分解为多个小素数乘积的正整数 当p是N 的因数&#xff0c;并且p−1是光滑数&#xff0c;可以考虑使用Pollards p-1算法来分解N 当p是N的因数&#xff0c;并且p1是光滑数&#xff0c;可以考虑使用Williamss p1算法来分解N 这里…

Java 快速排序算法详解及通用实现模板案例示范

1. 引言 在众多排序算法中&#xff0c;快速排序&#xff08;QuickSort&#xff09; 是一种非常经典且高效的算法。它采用“分治法”的策略&#xff0c;通过递归地将数组分割成更小的部分&#xff0c;从而快速完成排序操作。快速排序的平均时间复杂度为 O(n log n)&#xff0c;…