DBBigWork/设计文档.md
2022-11-09 11:30:08 +08:00

6.7 KiB
Raw Blame History

电子书管理系统

用户需求分析

主要面向对象:我自己

数据需求:

  • 图书信息
  • 统计信息
  • 图书附加信息
  • 主机和存储设备信息

功能需求:

  • 上传并存储电子书,具有不同副本管理的功能,同时需要有历史记录功能
  • 搜索并下载电子书
  • 对电子书的进行分类管理,基本的有按照类别、作者、年份等
  • 书单功能
  • 笔记注释功能
  • 多用户功能和管理员功能

数据字典分析

数据处理

  • 用户管理
    • 处理过程名:用户管理
    • 说明管理员对用户信息进行基本的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图

转换关系