首页 > 其他分享 >南斗六星-系统设计

南斗六星-系统设计

时间:2024-05-03 20:13:24浏览次数:24  
标签:comment varchar int 斗六 系统 书籍 设计 null id

需求的改进

系统设计

架构设计

本次团队项目采用开发框架式SSM(Spring + SpringMVC + Mybatis)

系统采用三层体系结构,分别是:

  1. 表示层
  2. WEB应用层
  3. 数据层

利用SpringBoot进行项目的后端开发,前端使用React框架来开发

工作架构大概是这样的:

从买家的角度来看,系统应该是这样工作的:

从卖家的角度来看,系统应该是这样工作的:

在我们的预想中,买家对待售书籍只能预订,而不能真正的成功购买。买家一旦进行预订,卖家的后台就会出现买家对待售书籍的订单,同一本待售书籍可能会对应多个订单,卖家决定卖给谁,就由买卖双方通过聊天协商决定。

数据库设计

create table user
(
    id int unsigned primary key auto_increment comment '用户ID',
    username varchar(20) not null comment '用户名',
    password varchar(50) not null comment '密码',
    nickname varchar(20) default '' comment '昵称',
    email varchar(128) default '' comment '邮箱',
    user_img varchar(128) default '' null comment '头像',
    update_time date not null comment '更新时间',
    create_time date not null comment '创建时间',
    power tinyint not null default 1 comment '权限'
)default character set utf8mb4 comment '用户表';

由于用户头像的使用到的存储空间是不定的,一般不将用户头像存储在数据库中,所以将用户头像定义成一个URL,这样未来租用阿里云的对象存储服务OSS就可以用URL加载头像。

另外,我们的二手交易平台最终不仅仅要有普通的用户,还会有管理员用户来管理平台的运行。所以用户之间会有权限的差异,所以定义管理权限字段。

书籍表单设计

我们打算做书籍分类功能,所以需要一个记录书籍分类的表单

create table book_type
(
    id int unsigned primary key auto_increment comment '类别ID',
    name varchar(20) not null comment '类别名'
)default character set utf8mb4 comment '书籍类别';

关于待售书籍,我们设计这样一个表单来存储信息:

create table book
(
    id int unsigned primary key auto_increment comment '书籍ID',
    name varchar(50) not null comment '书籍名称',
    type_id int unsigned not null comment '类别',
    price decimal(12, 2) not null comment '价格',
    isbn varchar(20) not null comment 'ISBN号',
    img varchar(128) null comment '头像',
    detail varchar(500) default '' null comment '书籍描述',
    release_time date not null comment '上架时间',
    seller_id int unsigned not null comment '卖家ID',
    purchased int not null comment '是否已被购买',
    constraint type foreign key (type_id) references book_type(id),
    constraint seller foreign key (seller_id) references user(id)
)default character set utf8mb4 comment '待售书籍';

平台只负责管理待售的书籍,而不会试图去管理用户不再想要售卖的书籍或者已经卖出去的商品,所以需要 purchased 字段来标识。但这样子就是说,用户每挂售一个书籍,就只支持一次交易,这样做是考虑到我们面向的个人卖家和个人买家,而不是专门面向二手书售卖商。

订单表单设计

create table `order`
(
    id int unsigned primary key auto_increment comment '订单ID',
    user_id int unsigned not null comment '用户ID',
    book_id int unsigned not null comment '书籍ID',
    pay_time date not null comment '下单时间',
    address varchar(100) not null comment '收货地址',
    status tinyint not null comment '订单状态',
    constraint buyer foreign key (user_id) references user(id),
    constraint want_book foreign key (book_id) references book(id)
)default character set utf8mb4 comment '订单';

买家管理自己买某些书的意愿

卖家可以查看自己卖了哪些书,并可以查看有哪些人希望买这本书。

卖家通过书籍ID去查找买家;买家可以通过用户ID查看自己想要买哪些书。

聊天记录表单设计

还在设计中

表单之间的关系

ER图:

erDiagram USER ||--o{ BOOK : sell USER ||--o{ BOOK : purchase USER ||--o{ ORDER : purchase BOOK ||--|| TYPE : belongTo USER { id int username string password string nickname string email string userImg url updateTime date createTime date power int } BOOK { id int name string price double isbn string img url detail string releaseTime date sellerId int purchased bool } ORDER { id int buyerId int bookId int payTime date address string status int } TYPE { id int name string }

接口文档设计

本次项目采用前后端分离的架构,所以前端和后端之间需要一个开发共识,就是接口文档。

我们为每一个接口进行了详细的设计,以便于开发的流畅。

由于接口文档过于冗长,所以我们编写了另外一篇随笔用来展示接口文档:

接口文档

工具的使用

本次Alpha冲刺中,我们采用Apifox这个工具用作接口的开发和测试

使用git作为版本管理工具

使用docker进行项目运行环境的部署

后端使用IDEA进行Java代码的编写(使用到了SpringBoot,Mybatis,Spring,SpringMVC,MySQL,Redis)

前端时候JS框架React,并使用AntDesign这个组件库

Alpha任务分配计划

测试计划

标签:comment,varchar,int,斗六,系统,书籍,设计,null,id
From: https://www.cnblogs.com/Aderversa/p/18171541

相关文章

  • 微机与系统操作
    微机,即微型计算机,其结构主要包括中央处理器(CPU)、内存(RAM和ROM)、输入/输出接口(I/O接口)、以及各类板卡等。CPU是微机的核心,负责执行指令和数据处理。RAM用于存储临时数据,而ROM则存储固定程序和数据。I/O接口则是微机与外部设备通信的桥梁。在系统操作方面,微机采用层次化的结构,包括......
  • 操作系统
    操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机工作流程以及方便用户有效地使用计算机的程序集合。一方面,操作系统是系统资源的管理者,另一方面,操作系统是用户与计算机系统之间的接口。具有硬件相关、应用无关,核心常驻内存,中断驱动,权威性,庞大、复杂,重要性,并发、共享......
  • 计算机操作系统
    计算机操作系统的简述计算机操作系统是管理计算机硬件和软件资源的基础软件。它负责协调计算机的工作流程,确保各个程序和任务能够顺利运行。主要功能:进程管理:操作系统负责创建、调度和终止计算机上的进程,确保CPU得到高效利用。内存管理:管理计算机内存,确保程序有足够的空间来运......
  • 深入 Django 模型层:数据库设计与 ORM 实践指南
    title:深入Django模型层:数据库设计与ORM实践指南date:2024/5/318:25:33updated:2024/5/318:25:33categories:后端开发tags:DjangoORM模型设计数据库关系性能优化数据安全查询操作模型继承第一章:引言Django是一个基于Python的开源Web应用程序框架,它......
  • 计算机导论操作系统
    我深刻认识到了操作系统在计算机系统中的核心地位。操作系统是计算机的基石,它不仅管理着硬件资源,还提供了用户与计算机交互的界面。通过本章的学习,我了解到操作系统的基本功能包括进程管理、文件管理、内存管理和设备管理等。特别是进程管理,操作系统需要有效地调度多个进程,确保系......
  • 计算机操作系统
    计算机操作系统是管理计算机硬件与软件资源的软件,它为用户和应用程序提供了一个接口,使计算机的各种资源得以协调、高效运行。合理分配和管理CPU、内存、磁盘等资源,控制进程的运行、调度和终止,组织和管理文件及文件系统,管理各类输入输出设备,为应用程序提供各种服务和支持。早期计......
  • 操作系统
    计算机操作系统是一种系统软件,主要负责方便用户、管理和控制计算机的软硬件资源。它包括多个关键部分:文件系统:负责管理文件的存储和检索,包括按名存取文件、保护文件(通过存取控制表)和实现文件共享(如基于索引节点和符号链)。存储管理:分页存储管理和分段存储管理是两种常见的方法,它......
  • 操作系统与CPU
    我首先了解了CPU的基本结构和功能。CPU作为计算机的核心,负责执行指令、处理数据和控制计算机的各个部件。我深入研究了CPU的内部结构,包括算术逻辑单元、控制单元和寄存器等关键部件,这些部件共同协作,使CPU能够高速、准确地完成各种计算任务。在了解CPU的基本原理后,我开始探究CPU的......
  • 操作系统
    在当今这个高度信息化的时代,操作系统作为计算机系统的核心和基础,承载着管理硬件资源、提供软件运行环境、协调用户与计算机之间交互的重要职责。下面,我们将对操作系统进行总结。一.操作系统概念:1.操作系统是一个系统软件2.控制和管理计算机系统的各种硬件和软件资源。3.合理......
  • 操作系统
    操作系统:管理控制计算机软硬件资源,合理组织工作流程,方便用户有效使用计算机的程序集和。操作系统(特点:并发性,共享性、虚拟性和异步性)由多个模块组成,主要包括以下几个部分:内核:操作系统的核心,管理着硬件设备,如CPU、内存、I/O设备等,并对它们进行调度和分配。内存管理:负责内存的分配......