data flow diagram

This commit is contained in:
ridethepig 2022-11-09 11:30:08 +08:00
commit 53c8d1b339
3 changed files with 259 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.bkp
*.swap
*.o

1
DBBigWorkDesign.drawio Normal file

File diff suppressed because one or more lines are too long

255
设计文档.md Normal file
View File

@ -0,0 +1,255 @@
# 电子书管理系统
## 用户需求分析
主要面向对象:我自己
数据需求:
- 图书信息
- 统计信息
- 图书附加信息
- 主机和存储设备信息
功能需求:
- 上传并存储电子书,具有不同副本管理的功能,同时需要有历史记录功能
- 搜索并下载电子书
- 对电子书的进行分类管理,基本的有按照类别、作者、年份等
- 书单功能
- 笔记注释功能
- 多用户功能和管理员功能
## 数据字典分析
### 数据处理
- 用户管理
- 处理过程名:用户管理
- 说明管理员对用户信息进行基本的CRUD操作
- 输入CRUD请求、用户基本信息
- 输出D1中的用户信息记录
- 图书管理
- 处理过程名:图书管理
- 说明:用户新建、修改、查询、删除图书数据
- 输入:请求、用户身份、图书数据
- 输出D2图书信息
- 存储管理
- 处理过程名:存储管理
- 说明:从其他处理过程中接收数据和请求,实际操作电子书在服务器上的存放
- 输入D2的图书编号、D1的用户身份、存取操作
- 输出D3存储信息
- 上传下载管理
- 处理过程名:上传下载管理
- 说明:用户对指定的文档进行上传和下载
- 输入:电子文档的文件属性数据、用户的操作请求
- 输出D5存取记录、存取操作
- 笔记管理
- 处理过程名:笔记管理
- 说明:用户在特定的书籍上添加和查看笔记
- 输入用户请求、D1用户身份、D2图书编号
- 输出D4中的笔记记录
- 分类信息维护
- 处理过程名:分类信息维护
- 说明:在添加书籍时,维护分类和作者信息,方便统计查询
- 输入:电子文档的图书数据
- 输出D6、D7
上传一本书:首先检查用户信息和配额,增加上传记录,如果存在图书,则直接修改存储信息;如果不存在图书,则需要先新建图书,然后再写入存储,同时更新关联表信息。
下载一本书:检查用户权限,查询存储信息,更新下载记录
删除一本书:检查用户权限;如果是删除副本,直接修改存储信息;如果是删除图书,首先需要删除全部的副本,然后删除图书条目,最后删除关联表信息。
新建用户:直接修改用户表
删除用户:检查用户名下的图书和存储、书单信息,先执行删除数目的操作,然后再修改用户表
添加笔记:先找图书表,然后结合用户,单独写入笔记表
删除笔记:先找图书表,然后结合用户,单独修改笔记表
### 数据流
- 数据流名:管理数据
说明:管理员验证身份,建立用户档案
来源去向:管理员 -> P1
数据结构: 密码+用户信息表
- 数据流名:用户身份
说明:不同的用户身份进入的处理过程不同。
来源去向P1->P2.1 P1->P2.2
数据结构: 用户信息表
- 数据流名:查询请求
说明:通过书名和类别查询库中的图书
来源去向:用户 -> P2.1
数据结构: 类别/书名,图书信息表
- 数据流名:图书数据
说明:根据电子文档对应的图书情况新建图书记录
来源去向:图书 -> P2.1,图书 -> P2.3
数据结构: 图书信息表
- 数据流名:文件数据
说明:上传文件时,需要提供文件的属性
来源去向:电子文档 -> P3
数据结构: 文件属性表
- 数据流名:存取情况
说明:提供存取操作的数据封装,完成实际的数据存取
来源去向P3 -> P2.2
数据结构: 存取操作结构
- 数据流名:图书编号
说明:通过图书编号来识别和每种图书相关的数据
来源去向P2.1->P4, P2.1->P2.2
数据结构: 类别/书名,图书信息表
- 数据流名:笔记请求
说明:通过图书编号发起添加或者查看笔记的请求。
来源去向:用户 -> P4
数据结构: 图书编号,笔记信息
### 数据存储
- 数据存储名:用户信息
说明:存放注册用户的相关信息,邮箱需要唯一
编号D1
组成:用户编号,用户名,用户邮箱,用户密码,用户空间占用,用户配额,注册日期
数据量不多于10条
存取频度每天100次
存取方式:随机检索为主
- 数据存储名:图书信息
说明电子书的出版相关的信息ISBN唯一不包括实际的电子书文档信息
编号D2
组成编号ISBN出版社类型作者日期语言
数据量500条左右
存取频度每天200次
存取方式:随机检索和更新
- 数据存储名:存储信息
说明:电子书文档的相关数据,和图书信息密切相关
编号D3
组成对应图书的编号副本编号资源URL大小日期
数据量800条左右
存取频度每天300次
存取方式:随机检索为主
- 数据存储名:笔记信息
说明:读者对图书发表的笔记和注解
编号D4
组成:图书编号,用户编号,日期,内容
数据量1600条左右
存取频度每天300次
存取方式:随机检索和插入
- 数据存储名:存取记录
说明:记录电子书文档的上传、下载和删除,方便统计和故障查询
编号D5
组成:图书副本编号,用户编号,操作类型,日期
数据量2000条左右
存取频度每天300次
存取方式:主要是按照时间顺序插入,有时会有全表统计查询
- 数据存储名:类型信息
说明:记录图书的类型,方便统计和查询
编号D6
组成:类型编号,类型名称
数据量200条左右
存取频度每天100次
存取方式随机CRUD
- 数据存储名:作者信息
说明:记录图书的作者,方便统计和查询
编号D7
组成:作者编号,作者姓名
数据量200条左右
存取频度每天100次
存取方式随机CRUS
## 概念结构设计
### 实体分析
实体:管理员、用户、图书、文件、笔记、类型、作者
语义描述:
1. 一个系统里面有多个相互独立的用户,用户拥有多个图书,图书可以对应多个版本的文件,图书可以有多个笔记。一个文件只能对应一本图书。
2. 系统只有一个管理员,管理员不是用户,只有操作用户账户的权限,不具有对其他信息进行操作的权限。
3. 一个用户只能管理自己所拥有的图书、文件和笔记
4. 用户有存储空间配额的限制,上传的文件不能超过配额。
5. 一本图书可以被分到多个类别里面,一个类里面有多本书;一本书可以有多个作者,一个作者可以写多本书
### E-R图
### 转换关系