数据库课程设计 论坛系统—— 系统详细设计说明书

news/2024/10/28 16:26:27/

马马虎虎记录下2021Fall 的数据库课程设计——论坛系统
基于django开发,源码上传到github啦:) 🔗 B612Forum
不能翻墙的戳这里:) csdn资源下载

文章目录

  • 1. 文档介绍
    • 1.1. 编写目的
    • 1.2. 文档范围
    • 1.3. 读者对象
  • 2. 数据库概念结构设计
    • 2.1 系统 ER 图
    • 2.2 系统用例图
    • 2.3 业务泳道图
    • 2.4 数据流图
    • 2.5 模式类图
  • 3. 服务功能和界面设计
    • 3.1 整体设计方法概述
    • 3.2 后端服务功能设计
    • 3.3.前端界面设计
      • 3.3.1 主界面设计
      • 3.3.2 注册界面
      • 3.3.3 登录界面
      • 3.3.4 详细界面
      • 3.3.4 发帖界面
      • 3.3.5 内容管理界面
      • 3.3.6 消息提示界面
      • 3.3.7 好友申请界面
      • 3.3.8 个人资料界面
      • 3.3.9 编辑资料界面
      • 3.3.10 修改密码界面
      • 3.3.11 后台管理界面
  • 4. 系统安全体系设计
  • 5. 系统运行环境设计与部署结构
    • 5.1 环境设计
    • 5.2 项目部署
  • 6. 源代码列表及说明

1. 文档介绍

1.1. 编写目的

  1. 对系统进行整体的设计,方便后续的开发过程
  2. 作为数据库设计,软件架构的总依据

1.2. 文档范围

包括数据库设计,软件设计等有关内容

1.3. 读者对象

编写系统设计规格说明的人员及程序开发人员,以及《数据库系统原理》课程老师和同学。

2. 数据库概念结构设计

2.1 系统 ER 图

在这里插入图片描述

2.2 系统用例图

在这里插入图片描述

2.3 业务泳道图

场景 1: 用户登录,注册,修改个人信息,注销
在这里插入图片描述
场景 2:发布帖子,发表评论,添加好友,发送私信
在这里插入图片描述

2.4 数据流图

在这里插入图片描述
A: 帖子内容信息
B. 评论内容信息
C. 好友申请信息
D. 好友私信信息
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 模式类图

在这里插入图片描述
上述的模式,每一个关系表的的每一列数据都和主键直接相关,而不能间接相关,属性不能依赖于其他非主
属性,均满足 3NF 设计,设计合理。

3. 服务功能和界面设计

3.1 整体设计方法概述

⚫ 设计模式: MVC
本论坛系统是基于 MVC 的设计模式的。
MVC 即 Model-View-Controller(模型-视图-控制器) 模式。
◼ Model (模型) 简而言之即数据模型。模型不是数据本身(比如数据库里的数据),而是抽象的描
述数据的构成和逻辑关系。通常模型包括了数据表的各个字段(比如人的年龄和出生日期)和相
互关系(单对单,单对多关系等)。数据库里的表会根据模型的定义来生成创建。
◼ View (视图) 主要用于显示数据,用来展示用户可以看到的内容或提供用户可以输入或操作的界
面。
◼ Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制
用户输入,并向模型发送数据(比如增加或更新数据表)。
Django 网站开发的四大模块,Django Model(模型)对应的是 MVC 模式中的模型;Django URL + View(视图)
对应 MVC 模式中的 Controller;Django Template(模板): 这个与经典 MVC 模式下的 View 一致。Django 模板
用来呈现 Django view 传来的数据,也决定了用户界面的外观。Template 里面也包含了表单,可以用来搜
集用户的输入
⚫ 开发框架:ORM
该论坛系统在开发的过程中采用的是 ORM 框架,即 Object-Relational Mapping(对象关系映射),它
的作用是在关系型数据库和业务实体对象之间作一个映射,关系表现为 Django 中的一个数据模型(Model)
映射一个数据库表。其基本情况是:类(django.db.models.Model)映射到数据库表,类的属性映射为数据
库表字段,类的实例对象则映射为数据行。
不同程序员写 SQL 语句的水平参差不齐,写出的 SQL 语句执行效率不一致,导致系统运行速度快慢不一,运行状态时好时坏。Django ORM 通过统一格式的业务逻辑代码操作数据库,把 SQL 语句统一转换成
较为固定的 Django 语法结构。Django ORM 能避免一些重复、简单的劳动,在 ORM 模式下开发人员不用写
SQL 语句,更不需要在 SQL 语句优化上下功夫,可以只专注于业务逻辑的处理,从而提高开发效率。
设计流程主要包括如下 5 步

  1. 在项目使用的数据库管理系统中建立数据库。
  2. 在项目的配置文件 settings.py 中设置数据库的连接字符。
  3. 在应用程序的 models.py 文件中编写继承于 models.Model 的数据模型。
  4. 运行 python manage.pymakemigrations、python manage.py migrate 两个命令生成数据库表。
  5. 使用 Django ORM 操作数据库表。

⚫ AJAX 编程方法
AJAX(Asynchronous Java Script And XML)的意思是异步的 Java Script 和 XML,也就是使用 Java Script
语言与服务器进行异步交互,传输的数据为 XML,实际上现在传输的数据大多是 JSON 格式的。AJAX 最大
的优点是在不重新加载整个页面的情况下,可以与后端服务器交换数据并更新部分网页内容。在本论坛系
统中采用 AJAX 编程实现嵌套评论,并在网页上实时显示
⚫ Bootstrap 前端框架
本论坛系统采用的是 bootstrap 的前端框架,使得 web 开发更迅速、简单。通过使用 bootstrap 提供的 css
设置,组件,javascript 插件来美化网页。

3.2 后端服务功能设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3.前端界面设计

3.3.1 主界面设计

在这里插入图片描述

3.3.2 注册界面

在这里插入图片描述

3.3.3 登录界面

在这里插入图片描述

3.3.4 详细界面

在这里插入图片描述
在这里插入图片描述

3.3.4 发帖界面

在这里插入图片描述

3.3.5 内容管理界面

在这里插入图片描述

3.3.6 消息提示界面

在这里插入图片描述

3.3.7 好友申请界面

在这里插入图片描述

3.3.8 个人资料界面

在这里插入图片描述

3.3.9 编辑资料界面

在这里插入图片描述

3.3.10 修改密码界面

在这里插入图片描述

3.3.11 后台管理界面

在这里插入图片描述

4. 系统安全体系设计

为了保证系统平稳运行,设计了系统的安全体系,一个目的在于处理系统故障,介质故障,以及计算机病
毒。另一个目的在于限制数据库用户的权限,避免用户无意或恶意造成数据的泄露或损坏。
⚫ 对于系统故障和介质故障,应当开启数据库的日志功能,定期对数据库全库备份;对于计算机病毒,
应当为系统安装杀毒软件,并且运维时进了避免使用操作系统的管理员账户登陆系统,减小病毒可能
造成的危害。
➢ 手动数据库备份:直接在宝塔面板中的数据库管理界面点击进行备份,或者手动复制云服务器项
目目录下的 db.sqlite3 文件。
在这里插入图片描述
➢ 手动站点备份:直接对整个站点进行备份
在这里插入图片描述
➢ 添加任务计划,自动备份
在这里插入图片描述
➢ 开启日志:响应日志和错误日志

在这里插入图片描述
➢ 网站的恢复
可以根据自动备份的冗余数据库和日志文件对网站进行恢复或者在服务器上设置磁盘镜像同步
网站的内容。
⚫ 数据库针对应用场景,创建了不同的角色
➢ 游客: 游客可以浏览该网站的所有内容,可以注册称为该网站的用户,但是不能进行发帖或者
发表评论
➢ 注册用户:注册用户不仅可以浏览该网站的所有内容,还可以发帖,发表评论,添加好友,发送
私信。
➢ 管理员:管理员拥有上述的所有功能,除此之外还可以添加版块,修改板块,删除板块,删除文
章或者评论。
⚫ 并发控制和流量控制
在宝塔面板对该站点添加并发限制,单 IP 限制,流量限制

在这里插入图片描述

5. 系统运行环境设计与部署结构

5.1 环境设计

在这里插入图片描述

5.2 项目部署

一、 下载 python3 到/usr/local 目录
1.1. 切换到 /usr/local 目录
1.2. 获取 python3.6 的压缩文件 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
1.3 解压 python3.6 tar -zxvf Python-3.6.6.tgz
1.4 编译安装 python3 到指定路径
1.4.1 执行命令 ./configure --prefix=/usr/local/python3
1.4.2 安装 python3 make make install
1.4.3 安装完成之后,建立软链接,添加变量,方便在终端中直接使用 python3
a)python3 的软连接
执行命令: ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
b)pip3 的软连接
执行命令: ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
二、 安装软件管理包和可能使用的依赖
2.1. 执行命令: yum -y groupinstall "Development tools"
2.2. 执行命令: yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
三、 安装 virtualenv
3.1.执行命令: pip3 install virtualenv
3.2.建立软连接 执行命令: ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
3.3.在根目录下建立文件夹,用于存放 env mkdir -p /data/env
四、 切换到/data/env/下,创建指定版本的虚拟环境
4.1.执行命令 : cd /data/env 切换目录
4.2.执行命令: virtualenv --python=/usr/bin/python3 pyweb
4.3.进入/data/env/pyweb/bin,启动虚拟环境
A.执行命令: cd /data/env/pyweb/bin
B.执行命令: ``source activate
五、虚拟环境中配置网站所需依赖
5.1 在你网站根目录执行下列命令导出配置信息: pip freeze > requirements.txt
5.2 安装 uwsgi 执行命令: pip3 install uwsgi
5.3 给 uwsgi 建立软链接 执行命令: ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
5.4 将网站源码上传
5.4.1 修改 setting.py 文件
ALLOWED_HOSTS = ['*'] # 设置为所有的主机都可以访问 STATIC_ROOT = os.path.join(BASE_DIR,"static") # 设置静态文件的路径
5.4.2 在主目录下生成 static 和 media 文件
python manage.py collectstatic
5.4.2 通过宝塔面板上传到云服务器上 /www/wwwroot 目录下
在这里插入图片描述
5.4.3 下载 pyhton 项目管理器,添加项目,并映射到 ECS 的公网 IP 地址
在这里插入图片描述
5.4.4 修改项目配置文件
在这里插入图片描述
5.5.5 在站点管理中找到映射的站点,并修改其配置文件
在这里插入图片描述
六、 开启站点,运行该项目文件
1.首先进入到项目文件夹下,然后激活虚拟环境
2.执行 uwsgi 命令,指定端口号,静态文件的配置路径,以及进程数和线程数。
在这里插入图片描述

3.然后在任意主机上的浏览器中键入”公网 IP:端口号” 就可以浏览该网页
在这里插入图片描述
在这里插入图片描述

6. 源代码列表及说明

在这里插入图片描述


http://www.ppmy.cn/news/565709.html

相关文章

论坛管理系统数据库设计

论坛管理系统数据库设计 数据库数据表设计索引设计视图设计触发器 数据库 create database bbs; use bbs;数据表 create table user( uID INT PRIMARY KEY UNIQUE NOT NULL, userName VARCHAR(20) NOT NULL, userPassword VARCHAR(20) NOT NULL, userEmail VARCHAR(10) NOT …

学生论坛管理系统的设计与实现

学生论坛管理系统的设计与实现 一、问题定义二、可行性分析三、开发计划书四、系统设计五、系统完成后截图六、源码地址: 一、问题定义 1.项目背景 随着网络的不断发展,网上论坛信息越来越多,发帖的人也越来越多,自然而然&#x…

基于MYSQL的论坛管理系统数据库设计项目实战

说明:这是一个数据库课程设计实战项目(附带代码文档视频讲解),如需代码文档视频讲解可以直接到文章最后获取。 项目背景 随着互联网行业的发展,各种论坛纷纷而来。在论坛系统中,可让用户注册成为论坛会员&a…

怎样卸载deepin系统_系统卸载

因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:用户 您可以查看与复制此页面的源代码。 [[en:How to uninstall deepin]] 本页面简单介绍如何卸载深度操作系统,如果您对我们有任何建议,请前往[深度论坛](bbs.deepin.org)进行反馈。 如果本页面…

Java实现校园论坛系统

学习Java实现校园论坛系统,本文实现该系统的功能截图,和数据库设计SQL语句供大家参考 1.校园论坛系统背景 随着现在科技的发展,论坛系统越来越多,本系统为模仿校园论坛系统所作。 2.校园论坛系统技术架构 主要技术 Java Servlet JSP、JST…

Java实现论坛系统

学习Java实现论坛系统,本文实现该系统的功能截图,和数据库设计SQL语句供大家参考 1.论坛管理系统背景 随着现在科技的发展,论坛系统越来越多,本系统仿照CSDN做一个java学习论坛系统。 2.后台管理功能 后台功能简单介绍和功能展…

宠物医院管理系统

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,宠物医院管理系统当然也不能排除在外。宠物医院管理系统是以实际运用为开发背景,运用软件工程开发方法&…

基于PHP的简单BBS论坛系统

前言 项目可包部署 Q 1115487855 交流群:758350964(已满) 交流群2:511496356 一 项目介绍 基于PHP的简单BBS论坛系统 系统分为普通用户和管理员 帖子可以展示访问数量和评论数 技术栈 phpmysql 可搭建在phpstudy下快速部署 二 主要功能 用户 1 注册…