【千纸诗书】—— PHP/MySQL二手书网站后台开发之项目设计
前言:这个项目是毕设时候做的,我负责后台数据操作部分,已经很久了,这次回顾这部分,是为了复习PHP和MySQL的知识,正好现在在公司也负责的是后台管理系统的业务。第一篇【项目概况】附上毕业论文部分节选。项目github地址:https://github.com/66Web/php_book_store,欢迎Star。
![]() |
| 欢迎界面&首页 |
![]() |
| 后台管理系统 |
一、总体结构设计
本系统分为两个部分:前台管理系统和后台管理系统。前台管理系统包含有:书籍展示、图书检索、用户信息管理、购物车、订单等功能模块。后台管理系统包含有:书籍管理、分类管理、用户管理、评论管理、订单管理等功能模块。系统支持主流客户端——PC端。
前台管理系统,通过登录判断用户。如果没有登录,用户以游客身份浏览网站,只能查询书籍信息,不能进行交易。如果登录成功,用户则以会员身份拥有用户中心和书架,可以进行添加购物车、填写订单等操作,进而完成交易。
在图书检索功能中,用户可以通过模糊查询或高级查询,查找到自己想找的图书。用户登录成功后,将喜欢的图书收藏到个人书架中,方便以后查阅。在个人中心,用户可以修改个人信息、管理联系方式、发布出售图书、管理订单记录。购物车功能中,一次性记录图书信息,如果用户没有提交订单,退出登录或关闭浏览器,就清空购物车。
后台管理系统,通过登录验证管理员。如果验证成功,管理员可以对网站信息进行更新、修改和删除等操作,实现对系统的日常维护。
图书出售信息发布系统分为两个部分:用户发布和管理员发布。用户根据自己的需求,可以发布自己的闲置图书,并对出售信息进行管理。管理员负责网站官方发布,出售网站统一回收的图书,并管理包括用户发布在内的所有图书出售信息。
在订单管理功能中,用户可以看到自己购买图书的订单,也可以看到客户购买自己图书的订单,方便用户之间直接进行交易。用户在确认收货成功之后,会开通评论功能,在所购买的图书详情中,显示已购买客户的评论信息。所有用户的订单与评论,后台管理员统一进行管理。
总体结构设计如图所示。

二、概念模型设计
从应用需求出发,系统可以分为:会员、管理员、二手书类别、二手书信息、书架、订单、订单状态、联系方式、评论,九个实体。
采用先逐一分析实体属性以及实体间的关系,设计局部E-R图,然后再合并为全局E-R图的方法,对整体的概念模型进行设计。
全局E-R图如图所示:

三、逻辑模型的设计
将二手书交易网站系统包含的9个实体的E-R图进行概念-关系模式的转化,可得到关系模式如表3-1所示:

为了满足网站对性能的实际需求,提高数据的查找和管理效率,将上述关系结构做出下列优化。
考虑到订单管理和个人信息管理的功能需求,订单信息表和用户信息表中的联系方式是相同的,因此为了简化数据表,将收货人联系方式从订单信息表和用户信息表中分离出来,单独建联系方式表。
书架信息表的设置是为了实现用户对二手书籍的收藏功能,仅包含两个字段:用户ID和二手书编号。用户ID与会员信息表中的用户ID组成外键,二手书编号与二手书检索表中的二手书编号组成外键,二者共同组成复合主键。是1对n关系的经典数据表结构。
为了实现限制用户管理客户订单的权限,在二手书信息表中,设置供货商字段,默认为0,表示管理员发布的二手书。用户发布的二手书,供货商字段值设置为对应的用户ID,即通过判断客户购买二手书信息中的供货商字段显示用户出售二手书的订单。
实现方案将在下一节作具体阐述。
四、数据库设计实现
根据上一节逻辑模型的分析,系统需要分为:会员表、管理员表、二手书信息表、二手书类别表、书架表、评论表、联系方式表、订单状态表、订单表这九个数据表。表3-2至表3-7分别展示了几个主要的数据表。
会员表user:包含6个字段,其中id为主键。

二手书类别表class:包含2个字段,其中id为主键。

二手书信息表book:包含13个字段,其中id为主键。

联系方式表touch:包含6个字段,其中id为主键。

订单状态表status:包含2个字段,其中id为主键。

订单表indent:包含12个字段,其中id为主键。

注:转载请注明出处
【千纸诗书】—— PHP/MySQL二手书网站后台开发之项目设计的更多相关文章
- 【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录
前言:使用PHP和MySQL开发后台管理系统的过程中,发现有一些通用的[套路小Tip],这里集中记录一下.结合工作中ing的后台业务,我逐渐体会到:除了技术知识外.能使用户体验好的“使用流程设计”积累 ...
- 【千纸诗书】—— PHP/MySQL二手书网站后台开发之功能实现
前言:前一篇温习了网站开发需要掌握的基础知识,这一篇重点梳理一下各个功能模块的[详细设计与实现].项目github地址:https://github.com/66Web/php_book_store, ...
- 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识
前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...
- JavaWeb网站后台开发记录手册
1.javaweb网站后台开发 1.封装DBTools类 1.注册数据库驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); 2 ...
- 1小时轻松上手springmvc,视频网站后台开发
由于最近半年一直在用springboot,但是也不能忘了本,于是把springmvc重新练了下,做了个前端传个表单,后台接收并显示的界面,该项目可以上传视频的URL,然后前端进行页面的播放,项目采用s ...
- 做php网站后台开发,在Linux系统上进行更好吗?
1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...
- 做php网站后台开发,在Linux系统上进行更好吗?【转载】
1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...
- 转战网站后台与python
这么长时间了,迷茫的大雾也逐渐散去,正如标题所写的一样,转战网站后台开发.这段时间没怎么写博客,主要还是太忙,忙着期末考试的预习,以及服务器的搭建,python的学习,还有各种各样杂七杂八的小事,就像 ...
- Mysql在大型网站的应用架构演变
原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等,阅 ...
随机推荐
- Bean相关
Bean容器初始化: 本地文件是绝对路径,classpath是相对路径.例子如下: Bean配置项: 常用Bean的配置项: (1)id :在整个IOC容器中,这个bean的唯一标识 (2)class ...
- 解析gtest框架运行机制
前言 Google test是一款开源的白盒单元测试框架,据说目前在Google内部已在几千个项目中应用了基于该框架的白盒测试. 最近的工作是在搞一个基于gtest框架搭建的自动化白盒测试项目,该项目 ...
- Selenium2+python自动化74-jquery定位【转载】
转至博客:上海-悠悠 前言 元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法. 这些还不够的话,今天再分享 ...
- CentOS7配置阿里云yum源和EPEL源
配置阿里云yum源(参考:http://mirrors.aliyun.com/help/centos) 1.备份 [root@bogon ~]# cd /etc/yum.repos.d/ [root@ ...
- Delphi:对TNotifyEvent的理解
type TNotifyEvent = procedure (Sender: TObject) of object; 在Delphi中事件也是一个类,类型就是事件类型,不同的事件属于不同的类.TNot ...
- Ionic2 window开发环境搭建
1.软件安装 Node.jsCordova & Ionic CLIJava SDK (一定要安装jre1.8)Android SDK 可根据链接http://www.jianshu.com/p ...
- python模块之XlsxWriter
官网Tutorial:http://xlsxwriter.readthedocs.io/tutorial Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,nu ...
- 大数模板(Java)
大数加法 /* 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 <= 10000 需注意:A B有可能为负数) Output 输出A + B ...
- HDU 2521 反素数(数论,比较)
#include<iostream> #include<cstring> #include<cmath> #include<cstdio> using ...
- 树上两点的最近公共祖先问题(Least Common Ancestors)
概念: 对于有根树T的两个节点u,v,最近公共祖先LCA(T, u, v)表示一个节点 x, 满足 x 是 u , v 的祖先且 x 的深度尽可能的大.即从 u 到 v 的路径一定经过点 x. 算法: ...

