前言:这个项目是毕设时候做的,我负责后台数据操作部分,已经很久了,这次回顾这部分,是为了复习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二手书网站后台开发之项目设计的更多相关文章

  1. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录

    前言:使用PHP和MySQL开发后台管理系统的过程中,发现有一些通用的[套路小Tip],这里集中记录一下.结合工作中ing的后台业务,我逐渐体会到:除了技术知识外.能使用户体验好的“使用流程设计”积累 ...

  2. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之功能实现

    前言:前一篇温习了网站开发需要掌握的基础知识,这一篇重点梳理一下各个功能模块的[详细设计与实现].项目github地址:https://github.com/66Web/php_book_store, ...

  3. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识

    前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...

  4. JavaWeb网站后台开发记录手册

    1.javaweb网站后台开发 1.封装DBTools类 1.注册数据库驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); 2 ...

  5. 1小时轻松上手springmvc,视频网站后台开发

    由于最近半年一直在用springboot,但是也不能忘了本,于是把springmvc重新练了下,做了个前端传个表单,后台接收并显示的界面,该项目可以上传视频的URL,然后前端进行页面的播放,项目采用s ...

  6. 做php网站后台开发,在Linux系统上进行更好吗?

    1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...

  7. 做php网站后台开发,在Linux系统上进行更好吗?【转载】

    1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...

  8. 转战网站后台与python

    这么长时间了,迷茫的大雾也逐渐散去,正如标题所写的一样,转战网站后台开发.这段时间没怎么写博客,主要还是太忙,忙着期末考试的预习,以及服务器的搭建,python的学习,还有各种各样杂七杂八的小事,就像 ...

  9. Mysql在大型网站的应用架构演变

    原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等,阅 ...

随机推荐

  1. Linux内核:关于中断你需要知道的【转】

    转自:http://blog.csdn.net/duqi_2009/article/details/38009717 1.中断处理程序与其他内核函数真正的区别在于,中断处理程序是被内核调用来相应中断的 ...

  2. (十一)__LINE__、__FUNCTION__的使用

    单片机中也可以用__LINE和__FUNCTION__进行异常信息打印,分别代表当前代码行数和当前代码函数名 printf("line:%d\r\n",__LINE__); pri ...

  3. HCharts的y轴保留一位和 两位小数

    保留一位小数,有一位小数的不变 yAxis : { labels : {  formatter : function () { var strVal = ''+this.value ; if (str ...

  4. DRF基类APIView提供的Request、Response和序列化器的综合使用

    关于DRF基类APIView提供的Request和Response对象的作用,可以看我的另一篇博文:https://www.cnblogs.com/chichung/p/9939864.html 综合 ...

  5. 动态加载ajax 腾讯视频评论

    import urllib import urllib2 import os import requests import re import json sns_url = 'http://sns.v ...

  6. docker从零开始 存储(二)volumes 挂载

    使用volumes 卷是保存Docker容器生成和使用的数据的首选机制.mount binds依赖于主机的目录结构,而卷完全由Docker管理.卷绑定安装有几个优点: 与绑定装入相比,卷更易于备份或迁 ...

  7. 关于ofbiz加载数据模块的文件参数配置

    1,在applications文件夹下新建一个数据模块meetingroom 2, 要让ofbiz加载这个数据模块就需要在applications下的配置文件里修改参数 (1)在application ...

  8. (十三)MySQL主从复制

    (1)工作原理 (2)主从实现 1) 环境介绍 cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) MySQL版本:5.7 mys ...

  9. 7/25 CSU-ACM2018暑假集训比赛1

    题目链接 [A - Tricky Sum ] In this problem you are to calculate the sum of all integers from 1 to n, but ...

  10. Codeforces #449 Div2 D

    #449 Div2 D 题意 交互式类题目. 起始有 n 张纸,会给出 m 次数字 p (\(1 \leq p \leq c\)),每次可选择一张纸,并在纸上写上这个数字,如果纸上已经存在数字,会覆盖 ...