图书销售管理系统
项目概述
图书销售管理系统是一个基于Vue.js + Node.js + MySQL的全栈Web应用程序,专为数据库课程设计而开发。该系统实现了完整的图书销售业务流程管理,包括图书信息管理、库存管理、采购管理、销售管理和统计分析等功能模块。
项目背景
本项目是《数据库原理与技术》课程设计的成果,旨在通过实际项目开发来巩固数据库理论知识,包括存储过程、触发器、视图等高级数据库技术的应用。系统采用前后端分离架构,前端使用Vue.js框架配合Element UI组件库构建用户界面,后端使用Node.js + Express框架提供RESTful API服务,数据存储采用MySQL关系型数据库。
项目截图
核心功能特性
1. 图书基础信息管理
- 图书信息录入:支持添加新图书,包括书号(ISBN)、书名、作者、出版社、价格等基本信息
- 图书信息维护:提供图书信息的修改、删除功能,确保数据的一致性和完整性
- 图书信息查询:支持按书号、书名、作者、出版社等关键字进行模糊查询和精确查询
2. 库存管理
- 库存信息维护:记录每本图书的库存数量,支持库存的增减操作
- 库存状态监控:实时显示图书库存状态,包括有库存和无库存的图书分类
- 库存预警:当库存不足时提供预警提示
3. 采购管理
- 采购记录创建:记录图书采购信息,包括采购数量、采购金额、采购日期
- 采购历史查询:支持按日期查询采购记录,生成采购报表
- 采购统计分析:提供采购数据的统计和分析功能
4. 销售管理
- 销售交易处理:通过书号查询图书信息,输入购买数量,自动计算销售金额
- 销售记录生成:每次销售交易自动生成销售记录,包含销售编号、书号、销售数量、销售金额、销售日期
- 销售历史查询:支持按日期查询销售记录
5. 数据统计分析
- 月度销售排名:生成每月图书销售排名报表,显示日期、书名、月销售总量
- 销售趋势分析:提供图书销售情况的统计和分析功能
- 数据可视化:通过图表形式展示销售数据和趋势
技术架构
前端技术栈
- Vue.js 2.6.11:渐进式JavaScript框架,用于构建用户界面
- Vue Router 3.1.6:官方路由管理器,实现单页面应用的路由功能
- Element UI 2.4.5:基于Vue的桌面端组件库,提供丰富的UI组件
- Axios 1.7.7:基于Promise的HTTP客户端,用于与后端API通信
后端技术栈
- Node.js:JavaScript运行时环境
- Express 5.0.1:Web应用框架,提供路由和中间件支持
- MySQL 2.18.1:关系型数据库,用于数据存储
- CORS 2.8.5:跨域资源共享中间件
数据库设计
系统采用MySQL数据库,包含以下核心表结构:
- bookbaseinfo:图书基本信息表,存储书号、书名、作者、出版社、价格
- bookstorageinfo:图书库存信息表,存储书号、库存数量
- buyinfo:采购信息表,存储采购编号、书号、采购数量、采购金额、采购日期
- saleinfo:销售信息表,存储销售编号、书号、销售数量、销售金额、销售日期
数据库还包含多个视图和存储过程,用于简化查询操作和实现复杂的业务逻辑。
环境要求
系统要求
- 操作系统:Windows 10/11、macOS、Linux
- 内存:建议4GB以上
- 存储空间:至少1GB可用空间
软件依赖
- Node.js:版本16.20.2或更高版本
- npm:版本8.19.4或更高版本
- MySQL:版本8.0或更高版本
- 现代浏览器:Chrome、Firefox、Safari、Edge等
验证环境
在开始安装之前,请确保您的开发环境满足以下要求:
# 检查Node.js版本
node -v
# 应显示:v16.20.2 或更高版本
# 检查npm版本
npm -v
# 应显示:8.19.4 或更高版本
# 检查MySQL服务状态
mysql --version
# 应显示MySQL版本信息
安装配置指南
第一步:项目
cd librarymanagement-master
第二步:安装项目依赖
# 在项目根目录下安装前端依赖
npm install
安装过程可能需要几分钟时间,请耐心等待。如果遇到网络问题,可以尝试使用国内镜像源:
npm install --registry=https://registry.npmmirror.com
第三步:数据库配置
3.1 创建数据库
-- 登录MySQL
mysql -u root -p
-- 创建数据库
CREATE DATABASE librarymanagement CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- 使用数据库
USE librarymanagement;
3.2 导入数据库结构
# 导入数据库结构和初始数据
mysql -u root -p librarymanagement < other/librarymanagement.sql
3.3 配置数据库连接
编辑 server/config.js
文件,修改数据库连接配置:
const client = mysql.createConnection({
host: "localhost", // 数据库主机地址
user: "root", // 数据库用户名
password: "123456", // 数据库密码(请修改为您的实际密码)
database: "librarymanagement" // 数据库名称
})
重要提示:请确保将密码修改为您MySQL的实际密码,并确保数据库服务正在运行。
第四步:启动应用
4.1 启动后端服务
# 进入server目录
cd server
# 启动后端服务
node index.js
如果启动成功,您将看到类似以下的输出:
Server is running on port 3000
4.2 启动前端服务
打开新的终端窗口,在项目根目录下执行:
# 启动前端开发服务器
npm run serve
启动成功后,您将看到类似以下的输出:
App running at:
- Local: http://localhost:8080/
- Network: http://192.168.x.x:8080/
4.3 访问应用
在浏览器中打开 http://localhost:8080/
即可访问图书销售管理系统。