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

article/2025/8/26 8:01:01

马马虎虎记录下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://chatgpt.dhexx.cn/article/B3QwcxHw.shtml

相关文章

【软件工程】机房文档--详细设计说明书

详细设计说明书 1引言 1.1编写目的 现在机房里提供的办公服务不断增加,信息不断的发展,单靠人工管理已经远远不能应付,这就要求办公自动化系统必须实现自动化、集成化。充分利用计算机网络优势,提高办公效率,是机房…

05详细设计说明书

详细设计说明书 1引言 1.1编写目的 本阶段在用户的需求分析的基础上,对机房收费系统做出概要设计。 编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计…

网约技师APP详细设计说明书

目录 1引言 3 1.1编写目的 3 1.2背景 3 1.3定义 3 1.4参考资料 4 2程序系统的结构 4 3登录程序Login()设计说明 5 3.1程序描述 5 3.2功能 6 3.3性能 6 3.4输人项 6 3.5输出项 7 3.6算法 7 3.7流程逻辑 7 3.8接口 8 3.9存储分配 8 3.10注释设计 8 3.11限制条件…

【综合实训】图书管理系统——详细设计说明书

【备注】本说明书由华中农业大学2018级计算机科学与技术专业的刘铠铭、崔凌浩、卢家伟三位同学共同完成。 文章目录 1 引言1.1 编写目的1.2 项目背景1.3 定义1.4 参考资料 2 总体设计2.1 需求概述2.2 软件结构 3 模块描述3.1 模块基本信息3.2 功能概述3.3 算法3.4 模块处理逻辑…

详细设计说明书(基于C语言的羽毛球场馆预订及查询系统)

详细设计说明书 目录 一.基本情况概述... 3 1.用户名 2. 基本说明 3. 背景 4.编写目的 5.主要参考资料 二.软件详解... 4 1.设计流程图 2.软件主要功能 3.软件各模块 三.测试分析... 5 1.限制条件 2.出现的问题 四.源代码解析.…

计算机基础(一)硬件

校园里当初学习的知识基本消耗殆尽,脑海中只剩浅浅又浅浅的记忆痕迹。即使一直从事相关的工作,但仅仅在一个方向上做着苦行僧,从来无暇去还原看全貌。或许是心有余悸,亦或许是仅仅为了搞钱而没用心正面看过它。在滚滚向前的科技时…

计算机基础硬件知识点讲解

目录 1.CPU2.内存2.1 随机存取存储器2.2 只读存储器 3.高速缓冲存储器3.寄存器6.磁盘7.I/O设备8.运行流程 1.CPU CPU是计算机的大脑,主要和内存进行交互,从内存中提取指令并执行它。在时间多路复用(Time Multiplexing) 的CPU中操作系统往往停止运行一个…

计算机硬件基础知识(三)

1 存储系统 存储系统在计算机系统中的地位非常重要 一般有 Cache和主存组成 Cache 由于在CPU和存储系统间存在数据传送带宽的限制,因此在其中设置了Cache(高速缓冲存储器) 提高效率,但是由于成本更高,所以cache的容量…

计算机硬件:内存条的基础知识笔记

在电脑硬件中,CPU、显卡、内存均三者是重中之重,所以我们在选择这些核心硬件一定要慎重。今天给大家分享一下关于的电脑内存基础知识,让更多的装机朋友们可以更好的学习内存相关知识。 史上最易懂的电脑内存基础知识 内存条的基本概念&#x…

计算机硬件基本知识

从概念上讲,计算机的结构非常简单:**首先布置一根总线,然后将各种硬件设备挂在总线上。**所有的这些设备都有一个控制设备,外部设备都由这些控制器与CPU通信。而所有设备之间的通信均需通过总线,如图3-1所示。图3-1中的…

计算机硬件系统基础知识

计算机硬件系统 不管我们有没有发现,在生活中我们处处都在使用着计算机。 计算机给我们的生活带来了很多便利与效率,为了更好地使用计算机协助我们的工作学习我们需要对计算机有一个基础的了解。 计算机历史 定义:计算机(compu…

硬件基础知识点

目录 ①数制转换②码制转换BCD码有权BCD码无权BCD码 ASCII码循环码(格雷码)奇偶校验码原码,反码,补码 ③逻辑运算及逻辑门与非或非与或非异或同或(异或非) 逻辑函数逻辑函数的概念由真值表写函数表达式逻辑函数的相等逻辑函数的基…

计算机硬件基础知识总结(一 )

1 进制计算 R进制转换成十进制 将R进制的数的每一位数值用 形式表示 即幂的底数是R 指数位k k是该位数字和小数点之间的距离(在小数点左边 为正,右边为负) 例如 : 10100.01 的十进制计算方式为 10100.01> 1*…

硬件基础知识

实模式 实模式又称为实地址模式,实,即真实,这意味着程序运行的是真实的指令,对指令的动作不作区分,直接执行指令的真实功能,同时也说明发往内存的地址是真实的,对任何地址不加限制地发往内存。…

计算机核心硬件基础知识

文章目录 计算机核心基础前言1、计算机组成原理1.1 计算机五大组成部分1.1.1控制器1.1.2运算器1.1.3存储器1.1.4输入设备input1.1.5输出设备output 1.2 程序运行与三大核心硬件(CPU 内存 硬盘)的关系 2、操作系统2.1 操作系统的由来2.2 系统软件与应用软件2.3 计算机系统三层结…

电脑基础知识精选(硬件篇)

电脑基础知识精选(硬件篇) 电脑基础知识一、处理器 CPU二、内存 RAM三 、硬盘 Disk四、显卡 GPU五、主板 Motherboard六、电源和显示器七、选配电脑常见问答八、如何开始选配电脑?结尾 电脑基础知识 这是一篇关于 电脑配置的一篇科普性 的文…

计算机硬件基础知识(一)

一、 硬件是计算机系统快速、高效、可靠运行的基础。 构成:运算器、存储器(取证的主要对象)、控制器和I/O控制系统等部件组成。 二、 内存(Memory) 也称内存存储器,ROM\RAM。是cpu、显卡或者其他内存板卡…

1.1 计算机硬件基础知识

本节主要考点 1、计算机硬件系统的组成 2、CPU的组成 3、进制转换 4、存储器与总线 5、输入输出控制 计算机硬件系统的组成 CPU的组成 • 运算器: • 功能: (1)执行所有的算术运算。如加、减、乘、除等基本运算及附加运算。 &…

计算机基础知识(上)(硬件篇)

1.计算机发展 1.1 计算机简介 计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 计算机有很多形式…

计算机硬件——基础知识

计算机硬件——基础知识 1.编程语言的作用 语言是用来沟通的,如英语、法语、葡萄牙语等。程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质。 2.操作系统和硬件的关系 操作系统负责管理计算机系统中各种独立的硬件&#xff0…