《基于SpringBoot的网上商城设计与实现.doc》由会员分享,可在线阅读,更多相关《基于SpringBoot的网上商城设计与实现.doc(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要该系统是基于SpringBoot的网上商城的系统,利用SpringBoot微服务框架的快速开发和对主流框架无配置集成的优点来快速实现灵活性高且扩展性强的购物系统,同时使用Dubbo这个分布式服务框架,使系统的各个层之间解耦合,利用提供者和消费者使整个系统不同模块负责不同的功能,更利于维护和保证系统的正常运行。该系统主要分为两部分,购物用户使用和后台管理员管理,两部分的模板引擎都是使用SpringBoot官方推荐的Thymeleaf,便于前后端联调。购物用户端的主要功能有用户注册,用户登录,搜索商品,收藏商品,购物车,个性化推荐等功能,其中注册功能使用MD5加密算法对用户的注册密码进行加密,
2、登录功能使用到Shiro安全框架来对登录的用户进行身份认证,搜索商品功能使用Solr搜索引擎来对商品进行搜索并且高亮显示搜索结果,使用基于用户的协同过滤算法来实现个性化推荐。后台管理员端页面是使用开源的前端框架layUI,这种简洁的页面为管理员操作带来许多方便,后台管理员端主要是对整个系统信息的维护。关键词: 微服务 分布式 身份认证 加密 搜索引擎 个性化推荐AbstractThis system is based on the SpringBoot online mall system, with the rapid development and SpringBoot micro ser
3、vice framework for mainstream framework configuration integration to quickly realize the advantages of high flexibility and extensibility is strong shopping system, at the same time use the Dubbo this distributed service framework, and make the system coupling between each layer solution, use differ
4、ent providers and consumers to make the whole system module is responsible for different functions, more conducive to maintain and ensure the normal operation of the system.The system is mainly divided into two parts, the shopping user and the background administrator management, the two parts of th
5、e template engine are using the official recommendation of SpringBoot Thymeleaf, easy to front and back end coordination. The main functions of the shopping client user registration, user login, search goods, collect goods, shopping cart, personalized recommendations, and other functions, including
6、registered function using MD5 encryption algorithm for the user password is encrypted, the login function to use Shiro security framework to the logged-in user identity authentication, to search commodity function using Solr search engine to search for goods and highlighting search results, use user
7、-based collaborative filtering algorithm to realize the personalized recommendations. Background administrator terminal page is the use of open source front-end framework layUI, this concise page for the administrator operation brings a lot of convenience, background administrator terminal is mainly
8、 the maintenance of the entire system information.Key words: microservice distributed identity authentication encryption search engine personalized recommendation广东东软学院本科毕业设计(论文)目 录1. 绪论11.1研究背景与意义11.2国内外发展现状11.2.1国外发展的现状11.2.2国内发展的现状11.2.3未来发展的启示12. 技术与开发工具22.1 前端技术22.1.1 LayUI22.1.2 BootStrap22.1.
9、3 Thymeleaf22.2 后端技术22.2.1 SpringBoot22.2.2 Dubbo22.2.3 ZooKeeper32.2.4 Redis32.2.5 Solr32.2.6 FastDFS32.2.7 Shiro32.3 项目架构32.4 开发环境52.4.1 软件环境52.4.2 硬件环境52.4.3 开发工具53. 系统分析63.1系统总体分析63.2系统功能性需求分析73.2.1系统用户功能性需求分析73.2.2系统管理者功能性需求分析93.3功能介绍113.3.1系统管理113.3.2业务功能113.4数据库概念设计143.4.1系统ER图143.5数据库配置信息143
10、.6数据库概念设计143.6.1数据库表结构143.7数据库逻辑设计214. 详细设计与实现234.1核心代码实现与流程图234.1.1登陆模块234.1.2购物车模块264.1.3全文检索模块334.1.4推荐模块374.2功能模块设计394.2.1管理员登陆模块394.2.2商品分类模块404.2.3商城头条模块434.2.4商城Banner管理模块434.2.5商品管理模块444.2.6快递公司管理模块464.2.7支付方式管理模块474.2.8用户管理模块474.2.9前台用户注册模块474.2.10前台用户登陆模块484.2.11前台用户个人中心模块494.2.12商品详情模块504
11、.2.13收货地址模块514.2.14收藏模块525.系统测试535.1系统功能性测试536. 结论与展望596.1总结与结论596.2未来展望59参考文献60致谢611. 绪论本章主要简单阐述该课题的研究背景和意义,网上商城在国内外的发展现状,并且就自己的观点提出网上商城的未来发展和启示。1.1研究背景与意义互联网的飞速发展为网上商城带来了无限的可能,这种足不出户便能轻易货比三家的网上购物方式越来越受到大众的喜爱,为了迎合市场的需要越来越多的网上商城不断优化自身不断探索用户的喜好来更方便地为客户服务。在大数据兴起越来越多用户注重产品使用体验购物过程的体验,这也就是本文研究的意义,网上商城不再
12、单单是购物更是考虑到了每个用户的个性给每个用户带来不一样的体验。1.2国内外发展现状1.2.1国外发展的现状在国外网上购物已经相对成熟,在电商发展初期因为国外已经有电商了国内才慢慢效仿,国外的网上购物同样是因为越来越受欢迎所以越来越完善。虽然欧盟的电子商务起步比美国晚但是其发展速度迅速,正因为网上购物愈演愈烈,欧美国家物流配送体系也迅速发展起来,可以说已经相当完善,往往购物当天或者第二天便能收到自己购买的物品。1.2.2国内发展的现状在国外有亚马逊、沃尔玛,在国内有淘宝、京东等,移动支付的到来更是促进了网上购物发展,在支付方便的同时政府部门更是加强了对假冒伪劣商品的监督管理,为人们营造诚信交易
13、的环境,让人们整个购物过程有所保障。1.2.3未来发展的启示综上所述,通过对比国内外的网上购物发展现状,可以看出网上购物会越来越人性化,整个购物过程也会越来越高效,网上购物商城的发展定会越来越好。2. 技术与开发工具2.1 前端技术2.1.1 LayUILayUI是开源的前端UI框架,界面简洁美观,因为遵循了原生的HTML/CSS/JS的书写模式,所以引用起来容易上手,并且这个UI框架提供了丰富的常用模块,只要遵循书写规则就能轻松使用,提高了不怎么懂前端的后端开发者的效率。在本系统中主要使用LayUI框架作为后端管理界面的主要成分,其中的表单渲染,分页和查询都已经有集成的模块,直接就可以使用。
14、2.1.2 BootStrapBootstrap是最受欢迎的前端框架之一,利用网格系统的实现原理,通过定义容器的大小就能制作出强大的响应式的网格系统,并且非常容易修改,上手快速。同时,官方也提供了丰富的组件通过相关文档就能上手组件的使用和修改。在本系统中的用户的相关页面使用到Bootstrap来提高前端页面的开发速度。2.1.3 ThymeleafThymeleaf是一个开箱即用的服务器端java模板引擎,使用它来代替JSP这样使得页面代码风格统一,java代码和前端代码绝对的分离,并且Thymeleaf渲染的模板页面能直接用浏览器打开显示,并不像JSP页面那样需要启动整个Web应用。2.2
15、后端技术2.2.1 SpringBootSpringBoot是目前Java开发中流行的一种微服务架构,提供了一种快速使用Spring的方式,通过SpringBoot构建的Maven项目,只需要在其中的pom文件添加相关依赖包就能直接通过注解方式使用相应的库,这样大量减少了配置文件的编写,让开发人员能够更专注于业务逻辑的开发当中去提高了开发效率,其中直接内嵌了Tomcat简化了项目部署的过程。2.2.2 DubboDubbo是现今开发分布式应用中使用频率较高的一个RPC框架,随着网站应用的规模不断扩大,常规的单服务架构和垂直应用架构已经无法应对,所以Dubbo作为一个治理系统运运而生。Dubbo
16、作为一个RPC架构它不仅能使界面和业务逻辑分离,允许在修改界面的时候不需要整个应用重新部署同时修改业务逻辑的时候也是,还可以将大量需要交互并且不在同一个服务器的应用关联起来,提高了协同开发的效率同时也为维护带来了极大的方便。2.2.3 ZooKeeperZooKeeper是Dubbo官方推荐使用的注册中心,ZooKeeper作为注册中心相当于为整个系统提供一个服务寻找的目录,所有服务需要发布的时候都会去到注册中心进行登记,注册中心相当于一个目录,当进行系统访问是需要进行api调用,此时是直接调用注册中心上的服务,这样一个服务提供者,注册中心,服务消费者的模式让系统有条不絮的正常运行。2.2.4
17、 RedisRedis是当前最热门的NoSql数据库之一,是一款完全开源免费并基于内存运行支持持久化的数据库。利用Redis的响应快的特性可以将一些常用的数据存到Redis里面作为缓存,提高互联网系统性能并且能减轻数据库的读取压力,作为缓存工具,它的高性能、高响应受到了很多开发者的青睐,磁盘读取速度和内存读取速度相比,无疑是选择后者。2.2.5 SolrSolr是一款分布式的全文检索引擎,它基于Lucene同时也在这基础上进行了拓展,对查询功能进行了优化,它的分词功能,高亮显示功能是数据库不能比及的。使用Solr进行搜索代替直接从数据库搜索不仅提高了查询速度,并且对结果的高亮展示也是非常人性化
18、的。Solr也相当于一个服务器只需要配置便能进行搜索服务,有效降低了数据库频繁访问的压力。2.2.6 FastDFSFastDFS是一款开源的轻量级的分布式文件上传系统,它一定程度上解决了大量中小文件的存储问题,因为FastDFS的网络通信采用的是socket所以它通信速度快,它充分考虑到了冗余备份、负载均衡的需求,一直遵循高可用、高性能的宗旨,所以在文件上传与下载的技术选择中首先会选择使用FastDFS。2.2.7 ShiroShiro是一款基于java的安全框架,使用Shiro来快速完成认证和用户授权,基于Shiro是一个独立的框架,能运行在Web应用和非Web应用和集群分布式应用中。2.
19、3 项目架构基于SpringBoot、Dubbo、ZooKeeper、Redis的项目架构,整个项目按照分布式思想建立,这样是为了后续系统的协同开发和后期维护带来尽可能的便捷。使用ZooKeeper作为注册中心为Dubbo的服务提供者和服务消费者服务,将业务服务模块进行拆分,在项目启动时便把相应的服务到注册中心进行注册,以便服务消费者后续的消费,其中利用Redis的缓存机制将用户信息和购物车信息进行缓存,减少与数据库的大流量交互,同时购物车还利用到Cookie实现用户不需要登录同样能添加商品到购物车,待用户登录时将Cookie中的商品信息合并到当前用户下,提高用户体验。图2-1 项目抽象架构图
20、2.4 开发环境2.4.1 软件环境序号名称版本备注1Windows10操作系统2CentOS7.3运行环境3MySQL5.6数据库4Redis3.2.6缓存数据库5Maven3.6.0管理工具6Dubbo2.5RPC框架7ZooKeeper3.4.14注册中心8Solr4.10.4搜索引擎9Shiro安全框架10Nginx1.8.1负载均衡11FastDFS5.05图片服务器12TomcatSpringBoot2.1.9内置TomcatWeb容器表2-1 软件详细表2.4.2 硬件环境表2-2 硬件信息表序号名称版本备注1DELL G316G内存+128G固态 2CPUi7-8750H2.4
21、.3 开发工具表2-3 开发工具信息表序号名称版本备注1JDK1.8工具包2IntelliJ IDEA2017.1.1编译器3Navicat11.1.12数据库客户端4Git2.16.2版本控制3. 系统分析3.1系统总体分析该系统分成两部分,管理员管理部分和用户部分,采用分布式架构,这两部分通过不同的端口区分不同的服务,其中接口作为服务提供者所以也是独立的一个服务。整个系统不管是管理员端还是用户端都采用Shiro安全框架对用户进行身份验证拦截。管理员是对整个系统进行管理,拥有最高权限,系统功能图如下图3-1 系统功能图图3-2 管理员用例图图3-3 用户用例图3.2系统功能性需求分析3.2.
22、1系统用户功能性需求分析 本章节主要对用户功能性需求进行详细的分析,明确系统中用户拥有的功能的意义和设计的原因。图3-4 用户功能概述图1.用户登陆功能在网上商城系统中用户属于整个系统的服务对象,用户登陆功能必不可少,提供用户登陆功能记录每个用户的购物习惯,同时也访问商家统计商品热卖情况,其实为后来的个性化推荐做了充分的准备,用户的登陆功能要确保每个用户购买的商品都是在自己的账号下,同收藏的商品也是属于个人的,给用户带来良好体验。登陆功能尽可能保护用户的安全,不让密码泄露和对每个登陆用户进行验证是否已经是注册的合法账号。2.用户注册功能用户在登陆之前必须先为自己注册一个属于个人的账号,注册功能
23、的提供是为了这个网站的用户量,有用户进行注册商家的商品才有更多的机会售卖出去,基于合理性设计用户注册功能必不可少。用户进行注册都拥有属于自己的登陆账号和密码,在注册信息存到数据库中时要对密码进行加密,用户登陆密码是只有用户个人知道的,其他人无法知道。3.用户个人中心功能每个用户都有自己的个人中心,在个人中心中记录了自己的购买情况和收藏情况以及历史订单可以随时翻阅,同时可以将收货地址进行记录在个人中心,为下次的购买带来更多的方便,个人中心可以让用户统计自己的购买情况,另一方面也是给用户知道自己在哪方面的消费比例。4.商品详情展示功能在商家上传了商品之后,用户通过网站就可以进行浏览,商品的详情是为
24、了用户可以更加清晰知道商品的特性以便用户对其他商品进行对比而做出最佳的选择,商品详情功能必不可少,用户通过点击详情页查看之后可以进行选择购买或者收藏该商品,给用户带来极好的购物体验。5商品分类展示功能该功能主要是在用户查找商品的时候可以快速定位商品的类别,快速找到用户想要的商品,同时也是记录了该商城系统中商品的种类情况。6.商城头条展示功能此功能主要是让用户知道最新最热的关于商城的头条信息,拉近用户和商城的距离,同时也是记录商城中大事件的一个手段。7.商品搜索功能此功能是在大量的商品中快速找到用户想要的商品的最快的方法,因为该搜索功能是使用Solr进行商品的搜索,也是大大提高了搜索的速度,比起
25、用户通过翻页去查找商品和通过商品分类去查找商品速度上快了很多。3.2.2系统管理者功能性需求分析本章主要详细分析管理者拥有的功能,同时主要描述这些功能的意义与用途。图3-5 管理者功能概述图1.登陆功能管理员对系统信息进行管理前都必须进行登陆,为了信息的安全性,在没有登陆是不能对系统中的信息进行修改的,管理员账号不能通过注册进行获取到管理员权限,在系统完成时由开发者直接给予管理员账号。2.管理Banner功能前台的轮播图是通过后台进行管理的,这样轮播图是可以变化的给整个商城系统带来换风格的方便,在具体节日展示相应的轮播图给用户带来新的感觉,管理员对轮播图进行管理控制商城首页的展示。3.管理商品
26、分类功能商品的具体分类由管理员来进行定义,在添加商品的时候更方便快捷的选择相应的商品所属分类,分类具体的层级关系也是由管理员控制,这样为用户访问商品带来极大的便利。4.管理商城头条功能此功能只是为了丰富商城系统而生的,同时为了让更多的用户更多的了解到商城最近的一些事件,也是丰富了用户的业余生活。商城头条功能也是管理员要时刻关注和及时更新的内容,为用户带来更多资讯。5.管理商品功能此功能是管理员重点管理的功能,时刻关注商品的销量和商品是否需要存货或者对销量不好或者差评较多的商品进行下架,及时了解到用户的需求并且及时为用户带来更多不同的商品。在商品中管理的信息较多,所以是分几部分进行管理,在上传商
27、品信息时管理员要认真上传好一个商品的所有信息,对用户购买负责。6.管理快递公司功能每个商城都会有相应的物流,这里通过管理员来管理物流公司相当于自营,整个商城的体系架构相对完整,通过管理员对快递公司进行相应的管理。7.管理支付方式功能此功能只是为了在用户下单时可以对支付方式进行选择,现在有各种支付方式,现在系统提供多种可能供用户进行选择,切身为用户考虑。8.注册用户展示功能此功能主要是为了给管理员展示用户量,方便管理员对这些注册的用户进行分析挖掘更大的可能性和为不同用户推荐不同的商品为商城带来更大的效益,同时也是为用户减少选择的时间能更快速的买到自己想要的商品。9.管理订单功能此功能对用户的订单
28、进行审核发货和处理用户的退货订单,同时也是管理商城的订单量,方便商城的统计同时方便今后的决策。3.3功能介绍3.3.1系统管理1.文件存储模块本系统通过在阿里云服务器搭建FastDFS图片服务器来存储系统中的图片资源文件,在文件进行存储的时候都是将文件存到FastDFS图片服务器之后返回相应的URL地址给请求接口,然后最终存到数据库的也是只把返回的图片地址进行存储,在下次访问该图片的时候直接通过URL访问即可。2.缓存模块该系统在用户登录和购物车添加商品都进行了缓存,在用户登录的时候将用户相关信息缓存到Redis中,并且将其缓存时间设置为半个小时。同时购物车信息的缓存是Cookie和Redis
29、结合,在用户还没有登录的时候将购物车信息存到Cookie,在用户进行登录的时候把Cookie上的购物车信息存到Redis中,在更新和删除购物车信息的时候同时对Cookie和Redis进行更新。3.登录模块不管管理员模块还是用户模块登录都需要进行用户校验,两个模块都使用Shiro安全框架对用户的登陆信息进行校验,在管理员模块中,当用户名和密码都正确就将其用户信息存到Shiro的缓存中,否则继续跳回登陆页面。在用户模块中,当信息都正确才能进入到首页,信息都正确时会将用户信息存到Redis中以便后续使用,否则继续在登陆页面让用户进行登录。3.3.2业务功能1.商品分类管理添加商品分类商品分类包含三级
30、,在添加完成一级分类之后可对此一级分类进行添加二级分类,添加完二级分类即可添加三级分类,一级分类的添加包含图片,图片是通过异步上传到图片服务器,商品分类添加完成就会将数据保存到数据库中。修改商品分类修改选择的分类信息,其中一级分类的图片支持修改,如果对图片进行了修改那待修改信息确认提交的时候就会将新上传地址和旧的图片地址进行对比,如果不一样,那就根据旧地址去图片服务器上进行删除操作,避免图片服务器有多余的图片。修改成功后同时也会修改数据库中的相应数据。批量删除商品分类批量修改选中的商品分类,这里的删除不是物理删除而是逻辑删除,只是修改商品分类的状态,从使用状态修改成未使用状态,因为考虑到商品信
31、息和商品分类有着很大的关联,如果直接物理删除就会造成很多商品没有了所属。在批量删除成功后就批量修改了数据库中商品分类的状态。2.商城头条管理添加头条信息商城头条的添加使用到wangEdit编辑器,头条的详细内容可插入图片,和对文字进行加粗等操作,因为其中图片是上传到图片服务器中的,所以对应的数据库表有个专门的字段对图片地址进行单独存放,在添加成功后,其中该内容以代码形式存到数据库。修改头条信息修改商城头条的内容时,因为考虑到了详细内容可能会存在图片,而图片是上传到图片服务器的,在用户再次修改头条信息的时候可能会对图片进行修改,那在修改内容进行提交的时候,将详细内容中的图片抽取出来和旧的图片地址
32、进行对比,如果旧的图片地址不再在详细内容中则将图片服务器上对应的图片进行删除。批量删除头条信息批量修改选中的头条信息,这里的批量删除也是批量修改头条的状态,不对信息进行物理删除只是修改相应头条信息的状态。3.商城Banner管理添加Banner信息商城首页的轮播图由后台管理员管理,轮播图的图片最终是上传到图片服务器中,但是在添加信息的时候图片的回显是通过js控制回显,在表单提交的时候才将相应图片提交到图片服务器,在Banner图添加完成时,相应在数据库添加对应信息。修改Banner信息修改选中的Banner信息,其中修改图片也是在修改信息提交的时候才真正的修改,在提交的时候再将旧图片和新图片进
33、行对比,最后更新数据库相应信息。批量删除Banner信息批量修改选中的Banner信息,此处删除是逻辑删除并非物理删除,批量修改成功之后数据库相应信息的状态也跟着修改。4.商品管理添加商品信息添加商品信息,添加商品信息需要选择该商品对应的分类,商品分类有三级,通过Ajax异步请求来确定商品所属的分类,最终是将最小的分类作为外键存到商品信息表中。添加完商品信息可以为改商品添加其他规格,而不同的规格对应的库存和价格是不一样的,同时也可以为该商品额外添加图片。添加完成都会在数据库新增相应的信息。修改商品信息修改选中的商品信息,对商品信息进行修改,也可以对对应的商品信息的规格和图片进行修改,修改完成的
34、相应信息再数据库也相应变化。批量删除商品信息批量修改选中的商品信息,此处删除是逻辑删除并非物理删除,同时商品规格和商品对应的图片也在商品管理下,也可以执行逻辑删除操作,批量修改成功之后数据库相应信息的状态也跟着修改。5.快递公司管理添加快递公司信息添加快递公司信息,后台管理员添加快递公司相关信息以便用户下单时选择,在添加完成时数据库相应添加该信息。修改快递公司信息修改选中的快递公司信息,相应图片的修改如果上传了新图片就会将旧图片进行删除,修改完成后更新数据库中相应的信息。批量删除快递公司信息批量修改选中的快递公司信息,对选择的信息进行逻辑删除,相应修改数据库中该数据的状态。6.支付方式管理添加
35、支付方式信息添加支付方式信息,后台管理员添加支付方式相关信息以便用户下单时选择,在添加完成时数据库相应添加该信息。修改支付方式信息修改选中的支付方式信息,相应图片的修改如果上传了新图片就会将旧图片进行删除,修改完成后更新数据库中相应的信息。批量删除支付方式信息批量修改选中的支付方式信息,对选择的信息进行逻辑删除,相应修改数据库中该数据的状态。7.用户管理查看用户信息对进行了注册的用户信息进行查看,使用LayUI内置的分页进行浏览。搜索用户信息对用户信息中用户名进行模糊搜索,分页查看搜索结果。3.4数据库概念设计3.4.1系统ER图图3-6系统实体关系E-R图3.5数据库配置信息spring:
36、datasource: url: jdbc:mysql:/localhost:3306/lh_shop driver-class-name: com.mysql.jdbc.Driver 3.6数据库概念设计3.6.1数据库表结构地址表:用于储存用户收货地址的信息,其中表结构如表4-1所示。表3-1 address 用户收货地址表字段名称中文名称数据类型注释是否允许为空address_id地址主键int(11)地址主键,自动递增否receiver收货人名称varchar(50)存放相应的收货人是phone收货人手机号varchar(11)存放收货人手机号是location省市区varchar(1
37、00)收货地址的省市区是full_address详细地址varchar(100)收货的详细地址是default_address是否为默认地址int(2)是否是默认地址(0:是;1:否)是add_time添加时间datetime该地址添加时间是update_time更新时间datetime该地址更新时间是state地址状态int(2)状态(0:使用,1:被删除)是user_id用户主键int(11)地址所属账号否Banner图表:用于储存网站首页展示的轮播图的信息,其中表结构如表4-2所示。表3-2 banner Banner图表字段名称中文名称数据类型注释是否允许为空banner_id轮播图主
38、键int(11)主键,自动递增否banner_name名称varchar(100)banner图名称是banner_image图片varchar(255)存放banner图地址是update_time更新时间datetime轮播图更新时间是state状态int(2)使用状态(1:使用,0:废弃)是商品一级分类表:用于储存商品类别的一级分类信息,其中表结构如表4-3所示。表3-3 catalog_one 商品一级分类表字段名称中文名称数据类型注释是否允许为空one_id一级主键idint(11)主键,自动递增否one_name名称varchar(50)一级名称是one_image图片varcha
39、r(255)图片地址是update_time更新时间datetime更新时间是state状态int(2)使用状态(1:使用,0:废弃)是商品二级分类表:用于储存商品类别的二级分类信息,其中表结构如表4-4所示。表3-4 catalog_two 商品二级分类表字段名称中文名称数据类型注释是否允许为空two_id二级主键idint(11)主键,自动递增否two_name名称varchar(50)二级名称是update_time更新时间datetime更新时间是state状态int(2)使用状态(1:使用,0:废弃)是one_id一级主键idint(11)一级主键为外键否商品三级分类表:用于储存商品
40、类别的三级分类信息,其中表结构如表4-5所示。表3-5 catalog_three 商品三级分类表字段名称中文名称数据类型注释是否允许为空three_id三级主键idint(11)主键,自动递增否three_name名称varchar(50)三级名称是update_time更新时间datetime更新时间是state状态int(2)使用状态(1:使用,0:废弃)是two_id二级主键idint(11)二级主键为外键否商城头条表:用于首页展示商城头条信息,其中表结构如表4-6所示。表3-6 head_lines 新闻头条表字段名称中文名称数据类型注释是否允许为空news_id新闻头条idint(
41、11)主键,自动递增否news_title头条标题varchar(255)头条标题是new_content内容text头条内容是image_url图片varchar(255)内容中的图片路径是update_time更新时间datetime头条更新时间是state状态int(255)使用状态(1:使用,0:废弃)是用户表:该表存储已经注册该系统的用户的信息,其中表结构如表4-7所示。表3-7 person 用户表字段名称中文名称数据类型注释是否允许为空user_id用户idint(11)用户主键,自动递增否user_name用户昵称varchar(100)用户登陆昵称是user_password
42、密码varchar(100)用户登陆密码是salt盐值varchar(255)用于加密的盐是gender性别int(2)性别(1:男,2:女,3:未知)是phone手机号varchar(20)手机号是email邮箱varchar(50)邮箱是birth生日varchar(50)生日是address地址varchar(50)地址是image_url头像varchar(100)用户头像是state状态int(2)状态(1:使用,2:注销)是create_time注册时间datetime用户注册的时间是update_time更新时间datetime用户最后一次登录时间是商品表:该表存储整个商城系统的
43、商品信息,其中表结构如表4-8所示。表3-8 product 商品表字段名称中文名称数据类型注释是否允许为空product_id商品idint(11)商品主键,自动递增否product_name商品名称varchar(50)商品名称是product_one_image图片varchar(100)商品首页显示的图片是images多图地址varchar(255)详情里面的图片,逗号隔开是shop_price商城价格decimal(10,2)商城价格,首页显示是product_detail详情text商品详情是product_state状态int(2)商品状态(1:上架,0:下架)是update_t
44、ime更新时间datetime商品更新时间是three_id三级idint(11)商品所属分类否商品图片表:该表存储商品信息中的图片,将商品的图片单独存到一个表,其中表结构如表4-9所示。表3-9 product_image 商品图片表字段名称中文名称数据类型注释是否允许为空id主键idint(11)编号,自动递增否product_id商品idint(11)商品id,作为外键否image_name图片名称varchar(200)图片名称是image_url图片varchar(200)图片路径是state状态int(2)图片状态(1:正常,0:抛弃)是update_time更新时间datetime更新时间是商品规格表:该表存储商品信息中的其他规格的信息,其中表结构如表4-10所示。表3-10 product_specs 商品规格表字段名称中文名称数据类型注释是否允许为空specs_id规格idint(11)规格主键,自动递增否specs_name规格名称varchar(100)规格名称是specs_price规格价格decimal(