Assignment|数据库大作业小记

序言

这学期的大作业是自学一点点前端知识,做一个能和数据库耦合良好的系统,可以从十几个个系统中选一个想做的,我选的是//微信聊天群聊天系统//。把程序的文档也都附上。

项目地址

提取码hhhh

系统介绍

功能概述

系统主要功能如下:

  1. 账户功能

用户可以自行注册账户,注销账户,修改密码,修改账户信息,以实现对自己的账户进行管理。

  1. 群聊功能

用户可以通过设计好的系统,查看自己所在的群聊,选择自己想要聊天的群聊进行聊天。聊天群中可以看到发消息的群成员是谁,以及清除群聊界面的消息。

群聊界面中,还可以对该群的群成员进行查看,以及对本人信息进行查看。

  1. 系统管理员功能

系统管理员可以创建新群聊,可以将用户拉入群聊中,也可以对群聊信息,群主,群聊成员进行增删改查。

模块结构

  1. 前端功能

前端通过UI设计与简单的页面交互,实现了系统的面向用户部分的功能,主要是分为以下模块:面向普通用户的登陆、注册、注销、修改密码模块;面向普通用户的群聊查看、群聊选择、用户信息查看、群聊模块;面向超级管理员用户的增加删除群聊,群成员添加,群主的修改,群成员的删除模块。

  1. Web服务端

Web服务端主要是服务于用户和数据库系统的中间功能,主要分为以下两个模块:服务于数据库与前端之间的连接模块,主要需要实现相关设计;服务于端与端之间的socket模块,需要实现用户之间的通信。

  1. 数据库端

数据库端是对用户的聊天信息的存取,用户信息的存储,管理员信息的存取等需要使用到数据库存储的场景。

界面设计

前端通过UI设计与简单的页面交互,实现了系统的面向用户部分的功能,主要是分为以下模块:面向普通用户的登陆、注册、注销、修改密码模块;面向普通用户的群聊查看、群聊选择、用户信息查看、群聊模块;面向超级管理员用户的增加删除群聊,群成员添加,群主的修改,群成员的删除模块。

QAQ假装插入了图片.jpg

数据库部分设计

用到的表不止这四个,但是精简系统之后,实现功能只需要这四个。

  1. 视图

设计了用于通过ID检索用户名的Search_User视图(行列子视图)。可以提高shujuku系统的安全性。

  1. 索引

每张表的主键都是聚集索引;非聚集索引使用在消息表的ID列,由于ID在这里要经常查询,所以在这里使用非聚集索引提高查询效率。

  1. 存储过程

用户的注册使用了存储过程,通过一个存储过程代替注册语句。

  1. 并发控制

消息的增加和消息数的增添过程使用了事务操作,利用mysql8.0以上版本特性进行自动并发控制。

安全体系设计

  1. 用户口令管理

系统采用MD5加盐加密的算法,MD5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,就像每个人都有自己独一无二的指纹,MD5对任何文件产生一个独一无二的数字指纹。“盐”就是一串比较复杂的字符串。加盐的目的是加强加密的复杂度,这么破解起来就更加麻烦,当然这个“盐”越长越复杂,加密后破解起来就越麻烦。

  1. 存储与恢复

主要分为两部分:开启日志记录,通过通用操作日志,对数据库的变化进行监控,通过日志,遇到错误时可以回滚;人为可以在一定时间对数据库进行全备份。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!