PHP书店网站-计算机毕业设计源码05274

摘 要

随着互联网的发展,在线书店网站逐渐成为人们购买书籍的重要渠道。本文设计并实现了一个基于PHP+HTML的书店网站,旨在为用户提供便捷的图书购买体验,同时为管理员提供高效的管理工具。系统功能包括普通用户的登录注册、图书商城浏览与购买、订单管理、个人中心等功能,满足用户在网上选书、下单、支付、评论等一站式需求;而管理员则可以通过后台管理用户、资讯、订单、商品、轮播图等内容,确保书店网站的高效运营。

本系统采用PHP语言作为服务器端开发语言,利用ThinkPHP框架进行系统开发,前端页面通过HTML、CSS和JavaScript实现,保证了良好的用户体验和页面响应速度。数据存储和管理使用MySQL数据库,通过合理的数据库设计保证了数据的一致性与完整性。系统的设计重点放在用户体验与管理员管理便捷性上,考虑到实际运营需求,实现了商品分类管理、订单配送、售后服务等功能,确保了书店网站的多元化运营。

测试结果表明,系统功能全面,界面简洁,操作流畅,能够有效提升用户的购物体验,并为管理员提供了强大的后台管理功能,具有较高的实用价值。

关键词:书店网站;PHP;HTML;MySQL;ThinkPHP;用户管理;订单管理

Abstract

With the development of the Internet, online bookstore websites have gradually become an important channel for people to buy books. This article designs and implements a bookstore website based on PHP+HTML, aiming to provide users with a convenient book purchasing experience and efficient management tools for administrators. The system functions include login and registration for ordinary users, browsing and purchasing in the book mall, order management, personal center, etc., meeting users' one-stop needs for online book selection, ordering, payment, comments, etc; Administrators can manage users, information, orders, products, slideshows, and other content through the backend to ensure the efficient operation of the bookstore website.

This system uses PHP as the server-side development language and the ThinkPHP framework for system development. The front-end pages are implemented through HTML, CSS, and JavaScript, ensuring a good user experience and page response speed. MySQL database is used for data storage and management, ensuring data consistency and integrity through reasonable database design. The design of the system focuses on user experience and the convenience of administrator management, taking into account actual operational needs. It realizes functions such as product classification management, order delivery, and after-sales service, ensuring the diversified operation of the bookstore website.

The test results show that the system has comprehensive functions, a simple interface, and smooth operation, which can effectively improve the shopping experience of users and provide powerful backend management functions for administrators, with high practical value.

Keywords: bookstore website; PHP;HTML;MySQL;ThinkPHP; User management; Order management

目录

第1章 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 研究内容

1.4论文结构与章节安排

第2章 相关技术介绍

2.1 PHP描述

2.2 Mysql描述

2.3 Thinkphp框架介绍

2.4 MVC架构

第3章 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 功能需求分析

3.3 非功能需求分析

3.3.1 数据安全性

3.3.2 时间特性

3.3.3 稳定性

3.4 性能分析

3.5 用例分析

第4章 系统设计

4.1 系统架构设计

4.2 系统总体设计

4.3系统流程分析

4.3.1系统开发流程

4.3.2用户登录流程

4.3.3 系统操作流程

4.3.4添加信息流程

4.3.5修改信息流程

4.3.6删除信息流程

4.4数据库设计

4.4.1数据库概念设计

4.4.2数据库表设计

第5章 系统实现

5.1 管理员功能模块

5.1.1 登录界面

5.1.2 功能界面

5.1.3 用户管理界面

5.1.4 网站公告管理界面

5.1.5 轮播图管理界面

5.1.6 资讯管理界面

5.1.7 商城管理界面

5.2 普通用户功能模块

5.2.1 注册界面

5.2.2 登录界面

5.2.3 密码修改界面

5.2.4 图书商城界面

5.2.5 我的购物车界面

5.2.6 我的订单界面

5.2.7 我的地址界面

5.2.8 新闻资讯界面

第6章 系统测试

6.1 测试目的

6.2 功能测试

6.3 系统评价

结论

参考文献

致 谢

  1.  绪论
    1. 研究背景与意义

随着互联网技术的不断发展,电子商务逐渐改变了人们的购物方式,尤其是图书市场。传统的书店经营模式已经难以满足现代消费者对便利性和多样化的需求,因此,在线书店网站成为了越来越多读者购买图书的重要途径。通过互联网平台,用户不仅能够快速浏览图书信息、进行在线支付,还能够享受便捷的配送服务。与此同时,图书出版和销售行业的竞争也日益激烈,如何通过信息化手段提升经营效率和用户体验,成为了现代书店亟待解决的关键问题。

基于PHP+HTML的书店网站设计与实现,正是在这样的背景下应运而生。PHP作为一种高效的服务器端编程语言,在处理用户请求、数据交互和页面渲染方面表现出色,能够实现高性能、高稳定性的服务。而MySQL数据库系统则能够高效管理书店网站所需的大量数据,如用户信息、订单信息、书籍信息等。ThinkPHP作为PHP的一个轻量级框架,提供了更为简洁和模块化的开发方式,能够加速系统的开发进程,提升开发效率。HTML则负责页面的结构和展示,确保用户能够流畅地浏览网站。

书店网站的设计与实现不仅能优化用户购买图书的体验,还能为书店管理者提供一套高效的管理工具,涵盖了订单管理、用户管理、商品管理等多个方面。通过书店网站系统,书店能够实现对商品库存的实时监控、订单的自动化处理和售后服务的跟踪,大大提升了运营效率。此外,该网站的开发和设计对相关技术的探索和实践具有重要的学术和实际意义,有助于推动在线图书零售市场的进一步发展,并为其他类型的电子商务网站提供借鉴。

通过书店网站系统,用户可以便捷地浏览和购买书籍,管理员则能通过简洁的后台管理平台有效提升运营效率。因此,本书店网站的设计与实现不仅具有重要的应用价值,也为相关领域的技术发展提供了有益的实践经验。

    1. 国内外研究现状

在国内外,基于Web技术开发的书店网站已经得到了广泛的研究与应用,尤其是在电子商务平台和在线书店的设计与实现方面,相关技术得到了深入的探讨。

国内研究方面,赵旭(2024)针对Web前端开发技术在电子商务网站设计中的应用进行了详细分析,提出HTML5、CSS3和JavaScript等技术在网站功能实现中的重要性,特别是在用户界面、数据安全以及响应式设计方面的作用[1]。陆剑和冯晓睿(2024)进一步探讨了Web前端技术在电子商务网站中的应用,强调了用户体验和数据安全对网站设计的重要性,并通过案例分析展示了技术实现的过程[2]。赵梨君(2024)则从UI设计角度出发,强调了用户界面的设计如何直接影响电子商务网站的用户体验与用户满意度,提出了电子商务网站UI设计的关键要素与实施流程[3]。

此外,书店类网站的设计也受到了学术界的关注。陈含章(2021)以考古书店的官方网站为例,介绍了Django框架与MySQL数据库结合在电子商务平台中的应用,探讨了如何通过互联网将实体书店的品牌形象有效呈现,并增加线上互动功能[4]。崔睿玲与赵志豪(2022)分析了亚马逊网上书店的物流配送模式,讨论了如何通过优化配送方式来提升书店的整体效率[5]。张彦芳与靳继红(2021)探讨了基于JSP的网上书店系统设计,分析了系统的前台与后台管理功能,并讨论了如何通过数据库设计提升系统的整体性能[6]。王华威(2020)则通过Node.js与Vue框架开发了一个网上书店系统,提出了系统在用户交互方面的优化方法,特别是在前端响应速度和后台数据处理方面的改进[7]。

国外方面,Maryam Shabani Shayeh等(2024)研究了学术图书馆网站的设计,提出了基于用户需求的功能设计,指出增加网站的互动性和个性化内容能够显著提高用户的参与感与使用率[8]。Yesmin Shamima与Atikuzzaman Md.(2024)则通过对孟加拉国大学网站的可用性测试,分析了不同设备下用户体验的差异,为书店网站在多设备支持上的设计提供了借鉴[9]。

综上所述,国内外对基于Web技术的书店网站设计和实现的研究持续深入,从前端开发技术到用户界面设计、系统架构、物流配送及数据库管理等各个方面,已形成了较为完善的研究体系。各类技术的结合应用,特别是在PHP、HTML、MySQL和ThinkPHP等框架的支持下,极大提升了书店网站的功能性和用户体验,为未来的电子商务和书店管理系统的发展提供了宝贵的参考和经验。

    1. 研究内容

开发和实施书店网站设计与实现,需要完成以下任务:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)在系统ACK完成之后,我们将根据系统开发的要求,选择PHP技术来构建书店网站设计与实现,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,我们还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。

(3)在书店网站设计与实现中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、普通用户角色,每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,普通用户可以随时根据自身的需求查看和管理网站公告、新闻资讯、图书商城等,而管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。

(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,我们会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。

1.4论文结构与章节安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题研究的背景,系统开发的国内外研究现状和本文的研究内容与主要工作。

第二章:系统开发的相关技术介绍。

第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第七章:总结。

  1. 相关技术介绍
    1. PHP描述

PHP采用函数或者过程来解析对于数据的操作,但又把数据和函数之间相互分开,这样并不利于维护,并会增加程序的工作量。而面向对象的编程将程序的函数和函数对于数据的操作封装在一个类中,作为一个整体来处理。所以PHP语言是主要通过面向对象来实现编程,并且摒除了C++语言中的指针、多继承等比较难理解部分,创造出了自身独有的单继承、多接口、高内聚、低耦合等特性[3] [4]。

PHP技术对动态Web页面的开发作用简直是举足轻重。可以很快的响应到客户端的发送请求。是甲骨文公司旗下的IT及互联网技术服务公司Sun Microsystems公司主导并创立的动态网页技术的标准。而且能依据请求内容动态地生成XML、HTML,为用户的网络请求提供技术服务,而且可以与服务器上的其它PHP程序共同处理先对复杂的业务需求[5] [6]。

PHP主要优势如下:

(1)一旦程序有一次成功的编写,就能在多处运行起来。

(2)支持面特别广,许多平台已经引入该技术。

    1. Mysql描述

现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系[7]。

Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件[8]。

优点一:Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。

优点二:对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。

优点三:Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作[9] [10]。

    1. Thinkphp框架介绍

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 [1] 

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySqlPgSQLSqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

    1. MVC架构

MVC,即 Model 模型、View 视图,及 Controller 控制器。

View:视图,为用户提供使用界面,与用户直接进行交互。

Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类: 一类称为数据承载 Bean:实体类,专门用户承载业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理用户提交请求的。

Controller:控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。

MVC 架构程序的工作流程:

(1)用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等

(2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理

(3)Model 处理后,将处理结果再交给 Controller

(4)Controller 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应 View 页面。页面经渲染(数据填充)后,再发送给客户端。


  1. 系统分析
    1. 可行性分析

在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对技术、操作和经济因素的综合考量,我们可以更好地评估书店网站设计与实现的可行性,具体表现在:

      1. 技术可行性

书店网站采用的是PHP编程语言并于MVVM模式,数据库部分采用的是当前流行的MYSQL数据库,书店网站中的所有数据资源都存储在Mysql数据库中,本系统多处采用了AJAX的异步操作,AJAX技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是HBuilder编辑器,而HBuilder里面有自带的Apache服务器和JDK环境,因此不需要我们在重新配置。

      1. 经济可行性

书店网站是在PHP和Mysql的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。书店网站其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。

      1. 操作可行性

本系统是基于浏览器和服务器的书店网站,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。

    1. 功能需求分析

根据用户对系统的需求,要求系统简单操作,能够准确,完整的对信息进行管理。书店网站在对需求做解析后,整个系统主要分为两个部分:管理员和普通用户,每个模块下的分支功能不一样。对功能做出如下说明:

1. 普通用户功能:

登录注册: 普通用户首先需要进行登录或注册操作。通过提供注册表单,用户可以创建账户;而登录功能则允许已注册的用户通过输入用户名和密码访问其个人信息和购物功能。该模块实现了账户安全验证,确保每个用户的个人信息和购买数据的隐私性。

首页: 首页是普通用户进入网站后的第一视图,展示了书店的基本信息、促销活动、新书推荐等内容。通过精美的页面设计和布局,首页呈现了吸引用户点击的内容,增强用户体验。

网站公告: 网站公告功能用于展示书店的最新通知、优惠活动、节假日休息安排等信息,确保用户了解书店的最新动态。

新闻资讯: 此功能模块展示了书店相关的新闻、行业趋势以及书籍出版的最新动态。通过提供详细的资讯内容,提升了用户对书店网站的参与度和粘性。

图书商城: 图书商城是用户浏览和购买书籍的主要平台,展示了各种分类的图书,用户可以通过搜索、筛选等方式找到感兴趣的图书。在此页面,用户可以查看书籍的详细信息,如价格、简介、作者等,帮助用户做出购买决策。

商城管理:

我的地址:该功能允许用户管理和更新个人配送地址,确保订单配送的准确性。

我的购物车:用户可以将心仪的图书加入购物车,并在结算时一并下单。购物车支持商品数量的调整和删除操作。

我的订单:用户可以查看历史订单信息,包括订单状态、配送进度和相关详情。若订单存在问题,用户也可进行售后处理。

我的账户:该功能提供账户信息管理,包括修改密码、修改个人资料等功能,确保用户账户的安全性。

个人中心:

配送列表:用户可以查看所有配送订单的状态,如已发货、待配送等,实时跟踪配送进度。

收藏:该模块允许用户将喜爱的图书或商品添加到收藏夹,方便日后再次购买。

评论管理:用户可对已购买的图书进行评价,分享阅读体验,同时也能查看其他用户的评价,帮助做出购买决策。

2.管理员功能:

主页: 管理员的主页显示了书店的整体概况和一些重要信息,如销售统计、订单状态、用户反馈等。这是管理员操作网站的起始页面,汇总了网站运营的关键指标。

公共管理:

轮播图管理:管理员可以添加、删除或修改网站首页的轮播图,以展示促销活动、新书推荐等内容,吸引用户点击。

网站公告管理:管理员可以发布或更新网站公告,以告知用户有关书店的最新动态、促销信息等。

用户管理: 管理员可以查看和管理网站的注册用户,包括查看用户信息、删除不活跃账户、禁用用户等功能。此外,管理员还可以对用户的订单进行查看和处理,确保订单流畅执行。

新闻资讯管理:管理员可以发布、编辑和删除新闻资讯文章。该功能使书店能够及时分享行业新闻、新书推荐等内容。

资讯分类管理:管理员可以对新闻资讯进行分类,以便用户更便捷地查找感兴趣的内容。

商城管理:

图书商城管理:管理员可以管理图书商城中的所有商品,包括添加新书、删除下架书籍、编辑书籍详情等。管理员还可以更新书籍的价格、库存等信息。

分类列表管理:管理员可以对图书进行分类管理,例如按学科、作者、出版时间等进行分类,以便用户更方便地浏览和选择图书。

订单列表管理:管理员可查看所有用户订单,了解订单状态、处理用户退款、退换货请求等。

订单配送管理:管理员可以更新订单的配送状态,包括标记已发货、配送中、已送达等状态。

订单售后管理:管理员处理售后服务,如退货申请、退款处理等,确保用户的售后体验。

退出功能: 管理员可以通过退出功能安全地退出管理后台,确保系统的安全性。

    1. 非功能需求分析
      1. 数据安全性

书店网站设计与实现是一个集众多普通用户信息且长时间持续运转的系统,它储存了大量的信息,所以需要保证数据不会出现泄露、损坏等情况。只有良好的数据安全才可以保证系统对网上书店的管理。

      1. 时间特性

由于本系统具有网上书店管理性质,涉及发布网站公告、新闻资讯、图书商品信息等及时性较强的功能,所以,为了提高用户体验,需要及时反映操作的准确性以及有效性,预计需要控制系统响应时间在3s内,数据传输在50ms以内。

      1. 稳定性

本系统集信息收集与管理功能于一身,除涉及大量信息数据外,还需满足普通用户访问。可以预见这种访问通常是集中的、突发性的访问,很容易导致服务器满载、迟缓,最终崩溃。所以这要求在软件以及硬件部分均需要拥有应对短时间内大量数据吞吐的能力。在系统设计方面,我们通过减少不必要的信息提交量等方法来提高系统在特殊情况下的稳定性能。

    1. 性能分析

通过利用先进的计算机科学与互联网,我们研制出一套具有弹性的书店网站,以有效地降低运营成本,极大地改善用户的体验。通过书店网站的开发,我们建立了一个独立的系统,采用最新的数据库技术,以满足用户的需求,实现用户角色和功能模块的完美结合,使得管理更加高效、精准,与传统的管理信息完全不同,这样既可以节省资源,又能够大大提升业务处理的速度。这个系统拥有快速、高效、强大的功能。

    1. 用例分析

普通用户在登录系统后,能够进行浏览首页、查看网站公告、新闻资讯、浏览图书商城、管理我的地址、我的购物车、我的订单、管理个人账户、查看配送列表、收藏、评论管理等功能,具体用例分析如图 3-1 所示。

图3-1 普通用户用例图

管理员拥有最高的权限,在登录系统后,主要进行公共管理(轮播图、网站公告)、用户管理、资讯管理(新闻资讯、、资讯分类)、商城管理(图书商城、分类列表、订单列表、订单配送、订单售后)等,起到保障作用,具体用例分析如图 3-2所示

图3-2管理员用例图

  1. 系统设计
    1. 系统架构设计

书店网站采用三层开发设计模式,分为:用户界面层,业务逻辑层和数据访问层。用户界面层用来和用户交互,业务逻辑层负责业务的处理和各层之间的数据的传递;数据访问层负责对数据库的访问和检索。

系统的架构图如下图所示。

图4-1 系统架构图

系统各层之间的调用过程如下:

(1)用户通过用户界面层访问系统,向系统提交请求,界面层对请求进行初步的处理和包装,并判断是否要与业务逻辑层进行交互。

(2)业务逻辑层接收来自界面层的请求,对请求进行数据处理。然后调用数据访问层来实现数据库访问,数据访问层访问数据库,将数据读出并返回给逻辑层。

(3)逻辑层将处理的结果,返回给界面层。界面层加以处理呈现给用户。

    1. 系统总体设计

通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。

图4-2 系统功能结构图

4.3系统流程分析

4.3.1系统开发流程

书店网站开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图4-3所示。

4-3系统开发流程图

4.3.2用户登录流程

为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。如图4-4所示。

4-4 登录流程图

4.3.3 系统操作流程

用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图4-5所示。

4-5 系统操作流程图

4.3.4添加信息流程

管理员可以对网站公告、新闻资讯、图书商城等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图4-6所示。

4-6 添加信息流程图

4.3.5修改信息流程

管理员可以对网站公告、新闻资讯、图书商城等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图4-7所示。

4-7 修改信息流程图

4.3.6删除信息流程

管理员可以对网站公告、新闻资讯、图书商城等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图4-8所示。

4-8 删除信息流程图

4.4数据库设计

4.4.1数据库概念设计

数据库概念设计是指对于某个具体应用的数据模型(数据结构),进行抽象和设计,以便在后续的数据库实现阶段中进行数据库逻辑设计和物理结构设计。概念结构本身特性就是其能表现来自用户的各类需求。

系统ER图如图4-9所示。

图4-9 系统ER图

4.4.2数据库表设计

数据库表是设计和实现系统的一个重要基础。以下列出了该系统几个重要的数据库表。数据库表结构文档如下:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表address (收货地址:)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

address_id

int

10

0

N

Y

收货地址:

2

name

varchar

32

0

Y

N

姓名:

3

phone

varchar

13

0

Y

N

手机:

4

postcode

varchar

8

0

Y

N

邮编:

5

address

varchar

255

0

N

N

地址:

6

user_id

mediumint

8

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

default

bit

1

0

N

N

0

默认判断

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

parent

varchar

64

0

Y

N

父级菜单

8

parent_sort

int

10

0

N

N

0

父级菜单排序

9

position

varchar

32

0

Y

N

位置:

10

mode

varchar

32

0

N

N

_blank

跳转方式:

11

add

tinyint

3

0

N

N

1

是否可增加:

12

del

tinyint

3

0

N

N

1

是否可删除:

13

set

tinyint

3

0

N

N

1

是否可修改:

14

get

tinyint

3

0

N

N

1

是否可查看:

15

field_add

text

65535

0

Y

N

添加字段:

16

field_set

text

65535

0

Y

N

修改字段:

17

field_get

text

65535

0

Y

N

查询字段:

18

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

19

table_nav

varchar

500

0

Y

N

跨表导航:

20

option

text

65535

0

Y

N

配置:

21

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表book_mall (图书商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

book_mall_id

int

10

0

N

Y

图书商城ID

2

authors_name

varchar

64

0

Y

N

作者姓名

3

press

varchar

64

0

Y

N

出版社

4

hits

int

10

0

N

N

0

点击数

5

collect_len

int

10

0

N

N

0

收藏数

6

comment_len

int

10

0

N

N

0

评论数

7

recommend

int

10

0

N

N

0

智能推荐

8

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

9

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

10

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

11

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

12

cart_price

double

8

2

N

N

0.00

卖价:[1]

13

cart_inventory

int

10

0

N

N

0

商品库存

14

cart_type

varchar

64

0

N

N

未分类

商品分类:

15

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

16

cart_img_1

text

65535

0

Y

N

主图1:

17

cart_img_2

text

65535

0

Y

N

主图2:

18

cart_img_3

text

65535

0

Y

N

主图3:

19

cart_img_4

text

65535

0

Y

N

主图4:

20

cart_img_5

text

65535

0

Y

N

主图5:

21

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cart_id

int

10

0

N

Y

购物车ID:

2

title

varchar

64

0

Y

N

标题:

3

img

varchar

255

0

N

N

0

图片:

4

user_id

int

10

0

N

N

0

用户ID:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

state

int

10

0

N

N

0

状态:使用中,已失效

8

price

double

9

2

N

N

0.00

单价:

9

price_ago

double

9

2

N

N

0.00

原价:

10

price_count

double

11

2

N

N

0.00

总价:

11

num

int

10

0

N

N

1

数量:

12

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

13

type

varchar

64

0

N

N

未分类

商品分类:

14

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的<title>标签中

3

img

text

65535

0

Y

N

封面图:用于显示于产品列表页

4

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

int

10

0

N

Y

商品分类ID:

2

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

3

name

varchar

255

0

Y

N

商品名称:

4

desc

varchar

255

0

Y

N

描述:

5

icon

varchar

255

0

Y

N

图标:

6

source_table

varchar

255

0

Y

N

来源表:

7

source_field

varchar

255

0

Y

N

来源字段:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表logistics_delivery (物流配送)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_delivery_id

int

10

0

N

Y

物流配送ID

2

order_number

varchar

64

0

Y

N

订单号

3

product_name

varchar

64

0

Y

N

商品名称

4

purchase_quantity

varchar

64

0

Y

N

购买数量

5

total_transaction_amount

double

11

2

Y

N

0.00

交易总额

6

the_date_of_issuance

date

10

0

Y

N

发货日期

7

delivery_number

varchar

30

0

Y

N

配送订单

8

ordinary_users

int

10

0

Y

N

0

普通用户

9

shipping_address

varchar

64

0

Y

N

收货地址

10

delivery_status

varchar

64

0

Y

N

配送状态

11

signing_status

varchar

64

0

Y

N

签收状态

12

recommend

int

10

0

N

N

0

智能推荐

13

contact_name

varchar

255

0

Y

N

联系人名字

14

merchant_id

int

10

0

Y

N

商家id

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

255

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

发货状态:未配送,已配送

25

vip_discount

double

11

2

Y

N

0.00

折扣

表order_after_sale (订单售后)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_after_sale_id

int

10

0

N

Y

订单售后id

2

order_id

int

10

0

N

N

订单ID

3

order_number

varchar

64

0

Y

N

订单号

4

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

5

title

varchar

255

0

Y

N

商品标题

6

price

double

10

2

N

N

0.00

价格

7

price_ago

double

10

2

N

N

0.00

原价

8

num

int

10

0

N

N

1

数量

9

price_count

double

8

2

N

N

0.00

总价

10

user_id

int

10

0

N

N

0

买家ID

11

merchant_id

mediumint

8

0

N

N

0

商家ID

12

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

13

after_state

varchar

16

0

Y

N

未审核

售后状态:未审核,未通过,已通过

14

after_state_reply

varchar

255

0

Y

N

售后回复

15

type

varchar

255

0

Y

N

售后类型

16

content_desc

varchar

255

0

Y

N

售后内容

17

imgs

varchar

1000

0

Y

N

售后凭证

18

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_age

varchar

64

0

Y

N

用户年龄

4

user_gender

varchar

64

0

Y

N

用户性别

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

smallint

5

0

N

Y

日程ID:[0,32767]

2

content

varchar

255

0

Y

N

日程内容

3

scheduled_time

datetime

19

0

Y

N

计划时间

4

user_id

int

10

0

N

N

用户id

5

create_time

datetime

19

0

Y

N

创建时间

6

update_time

datetime

19

0

Y

N

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_id

int

10

0

N

Y

评分ID:

2

user_id

int

10

0

N

N

0

评分人:

3

nickname

varchar

64

0

Y

N

昵称:

4

score_num

double

5

2

N

N

0.00

评分:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

source_table

varchar

255

0

Y

N

来源表:

8

source_field

varchar

255

0

Y

N

来源字段:

9

source_id

int

10

0

N

N

0

来源ID:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

int

10

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:


  1. 系统实现
    1. 管理员功能模块
      1. 登录界面

管理员登录,管理员通过输入界面上显示的信息然后点击登录就能登录到系统进行系统的使用了,如下图所示。

图5-1管理员登录界面图

登录代码如下

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

      1. 功能界面

管理员登录进入书店网站系统之后,就可以对所有的信息进行查看,可以查看主页、公共管理(轮播图、网站公告)、用户管理、资讯管理(新闻资讯、、资讯分类)、商城管理(图书商城、分类列表、订单列表、订单配送、订单售后)等,并且还可以对其进行相应的操作管理。在功能界面还可以对商品销售金额和商品销售数量进行统计分析。如下图所示。

图5-2管理员功能界面图

      1. 用户管理界面

管理员点击“用户管理”菜单,管理员可以管理系统中的用户信息,支持用户的增删改查操作。界面如下图所示。

图5-3用户管理界面图

添加用户代码如下:

public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }

      1. 网站公告管理界面

网站公告管理,管理员可以管理网站公告的发布和更新,确保用户及时获取重要信息。界面如下图所示。

图5-4网站公告管理界面图

修改代码如下:

public function set()

    {

        if (Request::isPost()) {

            $get = Request::get();

            $where = [];

            foreach($get as $k => $g){

             if($k != 'page' && $k != 'size'){

             $where[$k] = $g;

             }

            }

            $request = Request::post();

if($this->table != 'user'){

$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

}

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $result = $this->model->set($request, $this->table, $this->table_id, $where);

                $data = $result;

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

      1. 轮播图管理界面

管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图5-5轮播图管理界面图

添加信息代码如下:

public function add()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

if($this->table == 'user'){

$request['password'] = md5($request['password']);

}

$res = $this->add_before($request, $this->table, $this->table_id);

if($res['code'] == 200){

$result = $this->model->add($request, $this->table, $this->table_id);

$this->add_after($this->table);

$data = $result;

}else{

$data['error'] = $res;

}

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

      1. 资讯管理界面

管理员点击“资讯管理”这一菜单的时候,会出现新闻资讯、资讯分类这两个子菜单,可以对这两个模块进行增删改查操作。资讯管理界面如下图所示。

图5-6资讯管理界面图

上传文件代码如下:

public function upload()

    {

        $month = date('Ym', time());

        $data = 'file';

        $path = 'upload/file/' . $month . "/";//上传文件保存位置

        $allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");

        if ($_FILES) {

            $file = $_FILES[$data];

            $rst = [];

            if (!empty($file['name'])) {

                $file_type = explode('.', $file['name']);

                $ext = end($file_type); //获取文件的格式

                $ext = strtolower($ext);

                if (!in_array($ext, $allow_ext)) {

                    $rst['error']['code'] = 30000;

                    $rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';

                } else {

                    if (!is_dir($path))

                    {

                        mkdir($path, 0777, true);

                    };

                    $name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;

                    $save_rst = move_uploaded_file($file['tmp_name'], $path . $name);

                    if ($save_rst !== false) {

                        $rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;

                    } else {

                        $rst['error']['code'] = 30000;

                        $rst['error']['message'] = '文件上传失败';

                    }

                }

            } else {

                $rst['error']['code'] = 30000;

                $rst['error']['message'] = '未选择文件';

            }

        } else {

            $rst['error']['code'] = 30000;

            $rst['error']['message'] = '未获取到文件';

        }

        return json_encode($rst);

    }

      1. 商城管理界面

管理员点击“商城管理”这一菜单的时候,会出现图书商城、分类列表、订单列表、订单配送、订单售后这五个子菜单。点击“图书商城”,管理员可以管理图书商城中的所有商品,包括添加新书、删除下架书籍、编辑书籍详情等。管理员还可以更新书籍的价格、库存等信息。点击“分类列表”,管理员可以对图书进行分类管理,以便用户更方便地浏览和选择图书。点击“订单列表”,管理员可查看所有用户订单,了解订单状态、处理用户退款、退换货请求等。点击“订单配送”,管理员可以更新订单的配送状态,包括标记已发货、配送中、已送达等状态。点击“订单售后”,管理员处理售后服务,如退货申请、退款处理等,确保用户的售后体验。图书商城界面如下图5-7所示。订单列表界面如下图5-8所示。订单配送界面如下图5-9所示。订单售后界面如下图5-10所示。

图5-7图书商城界面图

图5-8订单列表界面图

图5-9订单配送界面图

图5-10订单售后界面图

删除数据代码如下:

public function del()

    {

        $request = Request::param();

        $result = $this->model->del_data($request, $this->table, $this->table_id);

        $data = $result;

        return json_encode($data);

    }

    1. 普通用户功能模块
      1. 注册界面

注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其注册主界面展示如下图所示。

图5-11注册界面图

      1. 登录界面

用户注册完成后,点击“登陆”进入到登陆页面,输入用户名和密码,点击“登陆”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登陆失败,页面提示用户名或密码错误。如下图所示。

图5-12登录界面图

      1. 密码修改界面

用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。

图5-13密码修改界面图

修改密码代码如下:

public function change_password()

    {

        $accessTokenModel = new AccessTokenModel();

        $token = Request::header('x-auth-token');

        if (!empty($token)) {

            $result = $accessTokenModel->getToken($token);

            if (Request::isPost()) {

                $get = Request::get();

                $keys = array_keys($get);

                $where = [];

                if ($result) {

                    $where[] = ["user_id", '=', $result['user_id']];

                    $i = 0;

                    foreach ($get as $key => $val) {

                        $where[] = [$keys[$i], '=', $val];

                        $i++;

                    }

                    $request = Request::post();

                    $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

                    $result = $this->validate($request, $this->validate);

$new_password['password'] = $request['password'];

                    if (true !== $result) {

                        $data['error'] = 30000;

                        $data['message'] = $result;

                    } else {

                        $result = $this->model->change_password($new_password, $this->table, $this->table_id, $where);

                        $data = $result;

                    }

                } else {

                    $data['error'] = 30000;

                    $data['message'] = "token错误或失效,未查询到用户数据";

                }

            } else {

                $data['error'] = 30000;

                $data['message'] = "field的值不能为空!";

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "token的值不能为空!";

        }

        return json_encode($data);

    }

      1. 图书商城界面

用户点击首页“图书商城”按钮,会进入图书商城列表,支持局部搜索、排序、筛选,用户点击可查看图书详情,包括标题、价格、库存、图片、详细描述等,用户可以进行加入购物车、立即购买、评论、收藏等操作,点击“加入购物车”,用户可以将选中的图书添加到购物车,方便统一结算,并可在购物车中修改商品数量或删除商品。点击“立即购买”可以跳转到订单页面,用户可以选择支付。图书商城列表界面如下图5-14所示。图书详情界面如下图5-15所示。

图5-14图书商城界面图

图5-15图书详情界面图

      1. 我的购物车界面

当用户浏览到心仪的图书商品时,可以将图书商品添加至购物车内,查看购物车列表,修改或者删除购物车。我的购物车界面如下图所示。

图5-16我的购物车界面图

      1. 我的订单界面

用户可以查看订单的详细信息,包括订单编号、下单时间、订单备注等,可以对订单进行支付和售后申请。我的订单界面如下图所示。

图5-17我的订单界面图

      1. 我的地址界面

用户输入收货人、手机号及详细地址可以对收货地址进行添加。我的地址界面如下图所示。

图5-18我的地址界面图

      1. 新闻资讯界面

用户点击首页“新闻资讯”按钮,可以浏览有图书的最新资讯,可以进行点赞、收藏、评论、分享资讯,促进互动。界面如下图所示。

图5-19新闻资讯界面图


  1. 系统测试
    1. 测试目的

在对该系统进行完详细设计和编码之后,就要对在线点餐系统小程序的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。

    1. 功能测试

表6-1展示了一个系统登录功能的测试用例,它可以检测用户名和密码的输入,并且可以观察到系统的反应,从而证明这个功能已经达到了预期的效果。

表6-1 系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

表6-2提供了一个详细的注册功能测试用例,它可以有效地检测各种数据的输入,并且可以观察系统的反应,从而证明该功能已经达到了预期的目标。

表6-2 注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

通过使用表6-3的测试,我们可以看到,在进行图书商城管理时,我们可以进行增、减、更新和查询等操作,并且这些操作都已经被成功地执行。通过观察系统的反馈,我们发现这项功能已经实现了我们的预期,并且运行良好。

前置条件;用户登录系统。

表6-3 图书商城管理的测试用例

功能描述

用于图书商城管理

测试目的

检测图书商城管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加图书商城,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加图书商城,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改图书商城,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改图书商城,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除图书商城,选择图书标题删除

提示删除成功

与预期结果一致

点击搜索图书商城,输入存在的图书标题

查找出图书信息

与预期结果一致

点击搜索图书商城,输入不存在的图书标题

不显示图书信息

与预期结果一致

    1. 系统评价

系统评价是指在系统完成或改建后,根据预定的系统目标或现有成绩,从技术、经济、社会、功能等方面进行的评价或审核。本系统个人初步评价如下。

(1)系统功能评价:

根据需求分析以及测试结果来看,本系统已将达到了初期的需求目标,满足了用户对应需求。

(2)系统技术评价:

本系统设计略显繁杂,开发过程中对功能进行了一定的简化,运行时较为稳定,暂未发现安全问题。

(3)系统经济评价:

系统在低成本开发的基础上达到了设计要求。预计可以为用户节省一定的人力、物力。

结论

本论文对书店网站系统进行了设计与实现,全面分析了系统的各项功能和技术架构,并通过实际开发展示了其在书店管理与用户购物体验中的应用价值。通过对普通用户和管理员角色功能的划分,系统不仅实现了用户的图书浏览、购买、评论等功能,还提供了管理员高效管理商品、订单、用户等信息的后台平台。

在技术层面,系统采用PHP语言结合ThinkPHP框架,能够高效处理用户请求并实现复杂的业务逻辑;前端使用HTML和CSS技术保证了页面的展示效果和用户交互体验;数据存储方面,MySQL数据库能够高效管理大规模的数据,确保数据的完整性与一致性。系统实现了用户账户管理、购物车、订单管理、商品分类等基本功能,同时后台管理系统能够提供对轮播图、新闻资讯、用户、订单等的有效管理,为书店的运营提供了有力支持。

通过测试,系统表现出较高的稳定性和良好的用户体验,能够满足现代书店网站在运营和管理方面的需求。普通用户通过该网站能够实现便捷的图书购买和订单管理,而管理员则能通过后台实现对网站内容和业务的灵活管理,提升了运营效率和服务质量。

然而,系统在某些细节和扩展性方面仍有优化空间。例如,系统的安全性可以进一步加强,尤其是支付模块和用户账户管理的加密技术。此外,未来可以考虑对系统进行功能扩展,如支持多语言、增加更多的支付方式、实现更复杂的商品推荐算法等。

总之,本书店网站的设计与实现不仅具备了现代书店运营所需的核心功能,而且为后续的技术优化和功能扩展提供了基础。该系统具有较强的实用性和推广潜力,能够为书店电子商务的运作提供切实的技术支持和解决方案。


参考文献

  1. 赵旭.Web前端开发技术的电子商务网站设计分析[J].信息记录材料,2024,25(12):206-208.DOI:10.16009/j.cnki.cn13-1295/tq.2024.12.052.
  2. 陆剑,冯晓睿.基于Web前端开发技术的电子商务网站设计[J].信息记录材料,2024,25(03):231-233+236.DOI:10.16009/j.cnki.cn13-1295/tq.2024.03.014.
  3. 赵梨君.电子商务网站UI设计研究[J].信息记录材料,2024,25(10):246-248.DOI:10.16009/j.cnki.cn13-1295/tq.2024.10.037.
  4. 陈含章.农村出版物线上线下一体化发行体系构建探索[J].出版发行研究,2022,(09):17-24.DOI:10.19393/j.cnki.cn11-1537/g2.2022.09.008.
  5. 崔睿玲,赵志豪.基于网上书店的物流配送模式分析——以亚马逊为例[J].中国物流与采购,2022,(23):37-38.DOI:10.16079/j.cnki.issn1671-6663.2022.23.039.
  6. 张彦芳,靳继红.基于JSP的网上书店系统设计[J].信息技术与信息化,2021,(08):110-112.
  7. 王华威.基于Node.js的网上书店设计与实现[J].中国新技术新产品,2020,(22):43-46.DOI:10.13612/j.cnki.cntp.2020.22.015.
  8. Shayeh S M ,Tajafari M ,Sanatjoo A .Toward a persuasive academic library website[J].Journal of Librarianship and Information Science,2024,56(4):1040-1056.
  9. Shamima Y ,Md. A .Usability testing of a website through different devices: a task-based approach in a public university setting in Bangladesh[J].Information Discovery and Delivery,2024,52(4):365-377.
  10. 陈洪波.基于PHP开发技术的网站管理系统的设计[J].黑龙江科学,2024,15(20):150-152.
  11. 梁露,刘健.电子商务网站建设与实践[M].人民邮电出版社:202307.486.
  12. 陈媛婕.基于场景理论的复合型书店新零售服务设计研究[D].浙江工商大学,2023.DOI:10.27462/d.cnki.ghzhc.2023.001424.
  13. 张素青,翟慧.MySQL数据库技术与应用[M].人民邮电出版社:202302.241.
  14. Peng Y ,Wang S.Research and design of online drug mall system based on SOA[J].International Journal of Biomedical Engineering and Technology,2023,42(1):64-77.
  15. 李栋楠.书店书籍资料管理信息系统分析与设计[J].河北建筑工程学院学报,2022,40(03):192-196.
  16. 陈承欢.UML软件建模任务驱动教程[M].人民邮电出版社:202206.238.
  17. 黄真真.基于SSH的“ibook”书店商城设计与实现[J].科技与创新,2021,(16):173-174+178.DOI:10.15913/j.cnki.kjycx.2021.16.077.
  18. 安文潞.基于Django框架的考古书店官方网站的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000601.
  19. 吕云翔,朱涛,杨颖,等.软件测试实用教程[M].人民邮电出版社:202007.299.
  20. 孟敏,张卓云.基于JSP技术网上书店系统的设计与实现[J].河北软件职业技术学院学报,2020,22(01):7-11.DOI:10.13314/j.cnki.jhbsi.2020.01.003.


 谢

在这3个月的毕业设计过程中,指导教师的指导发挥了至关重要的作用,他们的认真负责的工作态度、谨慎的教学精神以及丰富的理论知识,为我的设计提供了强有力的支持,使得整个过程顺利进行。她的教学方式非常认真,让我印象深刻。我从她那里学到了很多知识,并在实践中不断提升。我对这位老师表示由衷的感谢。

经过对毕业设计的全面研究和开发,我的系统取得了重大突破,从需求分析到实现复杂功能,再到最终的测试和维护,使我对系统有了更加深刻的理解。此外,我还在实践中不断提升自己的技能,解决复杂问题,这是这次毕业设计最大的收获。

最终,在整个系统开发的过程中,我的同学和朋友们给予了我极大的帮助,他们的建议让我能够迅速地确定系统的商业理念。因此,我深深地感谢他们的支持。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值