版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java的地方直播销售系统的数据库设计与实现目录TOC\o"1-2"\u1 绪论 [16]。因此,在设计数据库时,数据必须准确、一致,保证表的数据在本表中的唯一性,一个表只能有一个主键,且主表和从表的数据需一致。本章小结本章主要对数据库系统进行需求分析,分别是功能性需求和非功能性需求。功能性需求介绍地方直播销售系统需要实现的基本功能,设计了系统的前后台功能模块。非功能性需求分析了系统的安全性和数据完整性。系统数据库设计数据库实体需求说明本系统中包括的实体有用户实体、角色实体、权限实体、管理员实体、地址信息实体、商品实体、品牌实体、商品类型实体、属性名称实体、属性值实体、商品SKU实体、商品图片实体、购物车实体、购物车详情实体、订单实体、订单状态实体、订单详情实体、直播间实体。用户实体包括以下数据项:用户编号、用户名、密码、昵称、性别、真实姓名、身份证、邮箱、手机号。系统中用户担任的角色不同,有不同的权限。角色实体包括的数据项有角色编号和角色名称;权限实体包括的数据项有权限编号和权限名称。一个角色可以有多个权限,一个权限也能被多个角色使用。管理员实体包括以下数据项:管理员编号、登录账户、登录密码。地址信息实体包括以下数据项:地址编号、国家、省市、城市、县镇、详细地址、邮编、联系电话。商品实体包括以下数据项:商品编号、商品名称、关键字、市场价格、出售价格、是否在售、是否新品、是否热销、是否显示、商品图片、创建时间。品牌实体包括以下数据项:品牌编号、品牌名称、logo图片、是否显示、创建时间。商品类型实体包括以下数据项:商品类型编号、类型名称、创建时间。一个商品有一个或多个属性,属性有不同的属性值。属性名称实体包含的数据项有属性编号、属性标题、是否在售属性、是否必须、属性添加时间;属性值实体包含的数据项有属性值编号、属性值、创建时间。将商品加入购物车会增加一个SKU商品。商品SKU实体包括以下数据项:SKU编号、价格、库存量、商品SKU名称、属性字符串、创建时间。商品图片实体包括以下数据项:图片编号、缩略图、原始图。购物车实体包括数据项有购物车编号、商品总价、商品总数。购物车详细信息实体包括以下数据项:编号、购买数量、加入时间。订单实体包括以下数据项:订单编号、订单总价、订单折扣金额、收货人、联系电话、运费、快递方式、支付方式、下单时间、发货时间、确认时间、付款时间。订单状态实体包括以下数据项:订单状态编号和状态。订单详情实体包括以下数据项:详情编号、购买价格、订购数量。直播间实体有以下数据项:直播间编号、直播名称、观看人数、推流地址、录播地址。概念结构设计通过需求分析说明,采用自底向上法得出本系统所需的局部E-R模型和全局E-R模型。各E-R图如图1至图19所示:用户实体E-R图:用户实体E-R图角色实体E-R图:角色实体E-R图权限实体E-R图:权限实体E-R图管理员实体E-R图:管理员实体E-R图地址信息实体E-R图:地址信息实体E-R图商品实体E-R图:商品实体E-R图品牌实体E-R图:品牌实体E-R图商品类型实体E-R图:商品类型实体E-R图属性名称实体E-R图:属性名称实体E-R图属性值实体E-R图:属性值实体E-R图商品SKU实体E-R图:商品SKU实体E-R图商品图片实体E-R图:商品图片实体E-R图购物车实体E-R图:购物车实体E-R图购物车详情实体E-R图:购物车详情实体E-R图订单实体E-R图:订单实体E-R图订单状态实体E-R图:订单状态实体E-R图订单详情实体E-R图:订单详情实体E-R图直播间实体E-R图:直播间实体E-R图完整的系统实体E-R图:系统整体实体E-R图逻辑结构设计该阶段将概念设计阶段的E-R图转换为关系模式,设计数据表建立起数据库并设计系统所需视图。实体E-R图转为关系模式如下:用户信息关系模式:users(user_id,uname,upwd,nick_name,sex,acname,id_card,email,tel)角色关系模式:role(role_id,role_name)权限关系模式:node(node_id,title)管理员关系模式:admins(admin_id,uname,pwd,role_id)地址信息关系模式:address(address_id,user_id,country,province,city,town,address,zip,mobile)商品信息关系模式:goods(goods_id,cid,brand_id,goods_name,keywords,market_price,sales_price,is_sales,is_new,is_hot,is_show,goods_img,goods_date)品牌关系模式:brand(brand_id,brand_name,brand_logo,is_show,brand_date)商品类型关系模式:category(cid,ctitle,parent_id,category_date)属性名称关系模式:attribute_name(attr_name_id,cid,attr_name,is_sales_attr,is_requird,attr_name_date)属性值关系模式:attribute_value(attr_value_id,attr_name_id,attr_value,attr_name_date)商品SKU关系模式:goods_sku(sku_id,goods_id,price,num,sku_name,sku_properties,sku_date)商品图片关系模式:goods_gallery(gallery_id,goods_id,goods_thumb,original_img)购物车关系模式:cart(cart_id,user_id,total_price,total_num)购物车详情关系模式:cart_info(id,cart_id,sku_id,buy_num,date)订单信息关系模式:orders(order_id,user_id,os_id,address_id,order_amount,order_discount,consignee,mobile,ship_pay,shipping_name,pay_name,add_time,send_time,confirm_time,pay_time)订单状态关系模式:order_state(os_id,state_desc)订单详情关系模式:order_detail(detail_id,order_id,sku_id,buy_price,num)直播间关系模式:lives(live_id,user_id,live_name,view_num,str_address,record_address)数据表设计如表1至表20所示:数据表具体功能说明表表名具体说明role(角色表)用于存储拥有不同权限的角色信息node(权限表)存储所有的权限信息role_node(角色权限关系表)角色所拥有权限的对照表admins(管理员表)存储后台管理员的信息questions(安全问题表)存储用户忘记密码时需要回答的问题和答案users(用户表)存储用户的基本信息,管理用户address(地址信息表)存储购买商品的地址详情,便于发货brand(品牌表)存放商品品牌信息category(商品类型表)存放商品的类别,便于商品分类goods(商品表)存放商品基本信息attribute_name(属性名称表)存储商品应有的属性名goods_attributes(商品-属性名关系表)商品对应属性名称对照表goods_sku(商品SKU表)存放商品SKU信息goods_gallery(商品图片表)存放商品图片cart(购物车表)存储用户购物车总价和总数量信息cart_info(购物车详情表)存储购物车的详细信息orader_state(订单状态)存储订单的状态信息orders(订单表)用于存储订单的基本信息order_detail(订单详情表)存储订单详细信息live(直播间表)存储直播间的基本信息用户表users用户表字段名称字段描述数据类型字段长度是否Null是否主键user_id用户编号int11否是uname用户名varchar50否是upwd密码varchar50否是nick_name昵称varchar50是否sex性别char1是否acname真实姓名varchar50是否id_card身份证varchar18是否email邮箱varchar50是否tel手机号varchar20是否角色表role角色表字段名称字段描述数据类型字段长度是否Null是否主键role_id编号int11否是role_name角色名称varchar50否否权限表node权限表字段名称字段描述数据类型字段长度是否Null是否主键node_id权限编号int11否是title权限名称varchar50是否角色权限关系表role_node角色权限关系表字段名称字段描述数据类型字段长度是否Null是否主键role_id权限编号int11否是node_id权限名称int11否是管理员表admins管理员表字段名称字段描述数据类型字段长度是否Null是否主键admin_id管理员编号int11否是uname登录账号varchar50是否pwd登录密码varchar50是否role_id角色编号int11是否地址信息表address地址信息表字段名称字段描述数据类型字段长度是否Null是否主键address_id地址编号int11否是user_id用户编号int11否否country国家varchar50否否province省市varchar50否否city城市varchar50否否town县镇varchar50否否address详细地址varchar50否否zip邮编int11是否mobile联系电话varchar50否否商品表goods商品表字段名称字段描述数据类型字段长度是否Null是否主键goods_id商品编号int10否是cid商品类型编号int10是否brand_id品牌编号int10是否goods_name商品名称varchar200否否keywords关键字varchar200是否market_price市场价格double0是否sales_price出售价格double0是否is_sales是否在售bit1是否is_new是否新品bit1是否is_hot是否热销bit1是否is_show是否显示bit1是否goods_img商品图片varchar100是否goods_date创建时间timestamp0否否品牌表brand品牌表字段名称字段描述数据类型字段长度是否Null是否主键brand_id品牌编号int10否是brand_name品牌名称char40否否brand_logologo图片varchar200否否is_show是否显示bit1是否brand_date创建时间timestamp0否否商品类型表category商品类型表字段名称字段描述数据类型字段长度是否Null是否主键cid商品类型编号int10否是ctitle类型名称char40否否parent_id父级IDint10是否category_date创建时间timestamp0否否属性名称表attribute_name属性名称表字段名称字段描述数据类型字段长度是否Null是否主键attr_name_id属性编号int10否是cid商品类型编号int10是否attr_name属性标题char60否否is_sales_attr是否在售属性bit1是否is_required是否必须bit1是否attr_name_date属性添加时间timestamp0否否属性值表attribute_value属性值表字段名称字段描述数据类型字段长度是否Null是否主键attr_value_id属性值编号int10否是attr_name_id属性编号int10是否attr_value属性值char60否否attr_name_date创建时间timestamp0否否商品SKU表goods_sku商品SKU表字段名称字段描述数据类型字段长度是否Null是否主键sku_idSKU编号int10否是goods_id商品编号int10是否price价格double0否否num库存量smallint5是否sku_name商品SKU名称varchar200是否sku_properties属性字符串varchar300是否sku_date创建时间timestamp0否否商品图片表goods_gallery商品图片表字段名称字段描述数据类型字段长度是否Null是否主键gallery_id图片编号int11否是goods_id商品编号int11是否goods_thumb缩略图varchar50是否original_img原始图varchar50是否购物车表cart购物车表字段名称字段描述数据类型字段长度是否Null是否主键cart_id购物车编号int11否是user_id用户编号int11是否total_price商品总价float0是否total_num商品总数int11是否购物车详情表cart_info购物车详情表字段名称字段描述数据类型字段长度是否Null是否主键id编号int11否是cart_id购物车编号int11是否sku_id商品sku编号int11是否buy_num购买数量int11是否date加入时间datetime0是否订单表orders订单表字段名称字段描述数据类型字段长度是否Null是否主键order_id订单编号int11否是user_id用户编号int11否否os_id订单状态编号int11否否address_id地址编号int11是否order_amount订单总价float0是否order_discount订单折扣金额float0是否consignee收货人varchar50是否mobile联系电话varchar11是否ship_pay运费varchar50是否shipping_name快递方式varchar50是否pay_name支付方式varchar50是否add_time下单时间datetime0是否send_time发货时间datetime0是否confirm_time确认时间datetime0是否pay_time付款时间datetime0是否订单状态表order_state订单状态表字段名称字段描述数据类型字段长度是否Null是否主键os_id订单状态编号int11否是state_desc状态varchar20否否订单详情表order_detail订单详情表字段名称字段描述数据类型字段长度是否Null是否主键details_id详情编号int11否是order_id所属订单编号int11否否sku_idsku编号int11否否buy_price购物价格float0是否num订购数量int11是否直播间表lives直播间表字段名称字段描述数据类型字段长度是否Null是否主键live_id直播间编号int11否是user_id用户编号int11否是live_name直播名称varchar50否否view_num观看人数int11是否str_address推流地址varchar50否否record_address录播地址varchar50否否设计相关视图:创建视图cart_goods_view用于实现用户查询购物车信息功能:createviewcart_goods_viewasselectcart.cart_id,user_id,total_price,total_num,cart_info.sku_id,sku_name,goods_sku.goods_id,goods_name,goods_img,price,buy_num,attr_name,attr_value,attr_name_id,attr_value_idfromgoods_attribute_view,goods_sku,cart_info,cartwheregoods_attribute_view.goods_id=goods_sku.goods_idandgoods_sku.sku_id=cart_info.sku_idandcart_info.cart_id=cart.cart_idorderbycart.cart_id,sku_id创建视图goods_attribute_view用于实现用户查询商品详细信息功能:createviewgoods_attribute_viewasselectgoods.goods_id,goods_name,sales_price,goods_img,attribute_name.attr_name_id,attr_name,attribute_value.attr_value_id,attr_valuefromgoods,attribute_name,attribute_value,goods_attributewheregoods.goods_id=goods_attribute.goods_idandattribute_name.attr_name_id=goods_attribute.attr_name_idandattribute_value.attr_value_id=goods_attribute.attr_value_id创建视图order_goods_view用于实现查询用户的所有订单信息功能:createvieworder_goods_viewasselectorders.order_id,orders.user_id,order_amount,order_discount,add_time,orders.os_id,state_desc,details_id,order_detail.sku_id,sku_name,goods_sku.goods_id,goods_name,goods_img,buy_price,order_detail.num,attr_name,attr_value,attr_name_id,attr_value_idfromgoods_attribute_view,goods_sku,order_detail,orders,order_statewheregoods_attribute_view.goods_id=goods_sku.goods_idandgoods_sku.sku_id=order_detail.sku_idandorder_detail.order_id=orders.order_idandorders.os_id=order_state.os_idorderbyorders.order_id,order_detail.sku_id物理结构设计为一个逻辑数据模型选取一个合适应用要求的物理结构的过程称为数据库的物理设计。具体内容为选择存取方法、确定数据库的存储结构、确定数据的存放位置和确定系统配置,根据需求本数据库中索引的建立如下。为attribute_name表的cid字段创建一个普通索引,索引方法为BTREE。为attr_value表的attr_name_id字段创建一个普通索引,索引方法为BTREE。为brand表的brand_name字段创建一个唯一索引,索引方法为BTREE。为category表的ctitle字段创建一个唯一索引,索引方法为BTREE。为goods_attribute表的goods_id字段创建一个普通索引,索引方法为BTREE。为goods_attribute表的attr_name_id字段创建一个普通索引,索引方法为BTREE。为goods_attribute表的attr_value_id字段创建一个普通索引,索引方法为BTREE。为goods_sku表的goods_id字段创建一个普通索引,索引方法为BTREE。为users表的uname字段创建一个唯一索引,索引方法为BTREE。本章小结本章主要介绍本数据库的概念设计、逻辑设计和物理设计。概念设计阶段设计数据库实体E-R图,逻辑设计阶段通过分析实体之间的关系得出关系模型并创建数据表结构和视图,最后,在物理设计阶段创建索引。系统详细设计与实现系统详细设计阶段的目标是设计出程序的蓝图。不仅是要正确的实现每个模块的功能,更重要的是设计出的模块应尽可能简单易懂。本章系统开发与运行环境开发环境:MicrosoftWindows10Web服务器:Tomcat服务器数据库管理系统:MySQL数据库管理系统开发工具:IntelliJIDEA2018.1.6,NavicatPremium开发语言:Java,Html系统总体功能结构图通过分析和设计,本系统的功能有注册功能、登录功能、购物车功能、订单管理、用户管理和商品管理等,系统总体功能组织结构图如下图所示:系统功能组织结构图几个主要功能的实现购物车管理查看购物车信息当用户想查看购物车详细信息时,点击购物车图标,跳转至购物车详情页。该页面可查看商品的商品图片、商品名称、商品属性信息、商品价格、购买数量和商品总额。SQL语句如下:<!--查询指定购物车的详细信息--><selectid="selectCartList"resultMap="cartMap">select*fromcart_goods_viewwhere<foreachcollection="list"item="goodsSku"separator="or">cart_id=#{cartId}andconcat(attr_name_id,":",attr_value_id)in(${goodsSku.skuProperties})andsku_id=#{goodsSku.skuId}</foreach></select>添加商品和设置购买数量用户选择商品后,点击加入购物车,cart表中商品总数加1,返回当前购物车商品总数,添加商品成功。SQL语句如下:<!--判断需要添加的商品信息是否已经在购物车中存在--><selectid="selectCartInfoExists"parameterType="CartInfo"resultType="int">selectcount(*)fromcart_infowherecart_id=#{cartId}andsku_id=#{skuId}</select><!--如果存在则只需要更新购物车中商品的数量--><updateid="updateCartInfo"parameterType="CartInfo">updatecart_infosetbuy_num=buy_num+#{buyNum}wherecart_id=#{cartId}andsku_id=#{skuId}</update><!--如何不存在则添加商品到购物车中--><insertid="addCartInfo"parameterType="CartInfo">insertintocart_infovalues(null,#{cartId},#{skuId},#{buyNum},now())</insert>移除商品用户不想购买已加入购物车的商品时,点击删除,cart表的商品总数减1并返回当前购物车商品总数,移除商品成功。SQL语句如下:<!--从购物车中删除商品--><deleteid="deleteGoodsFromCart"parameterType="CartInfo">deletefromcart_infowherecart_id=#{cartId}andsku_id=#{skuId}</delete>订单管理等查看订单用户可查看订单的收货人、收货地址、手机号码、订单金额和订单状态等信息。SQL语句如下:<!—查看订单信息--><selectid="selectOrderList"resultMap="orderMap">selectorders.order_id,order_amount,orders.mobile,orders.consignee,users.user_id,uname,upwd,order_state.os_id,state_desc,address.address_id,address.user_id,country,province,city,town,addressfromorders,users,address,order_statewhereorders.os_id=order_state.os_idandorders.user_id=users.user_idandorders.address_id=address.address_idorderbyorders.order_iddesc</select>发货管理修改发货信息卖家和管理员登录后台系统,进入订单管理页面修改订单状态和填写快递单号。SQL语句如下所示:<!--修改订单的快递信息--><updateid="updateOrderByShip">updateorderssetshipping_name=#{shipName},ship_number=#{shipNumber},os_id=3whereorder_id=#{orderId}</update>商品信息管理修改商品信息卖家和管理员登录后台系统,进入商品管理页面修改商品的名称、价格和类别。SQL语句如下所示:<!—修改商品信息--><updateid="updateGoods"parameterType="Goods">updategoodssetgoods_name=#{goodsName},sales_price=#{salesPrice},cid=#{category.cid}wheregoods_id=#{goodsId}</update>新增商品信息卖家和管理员登录后台系统,进入商品管理页面添加商品,商品属性包括商品名称、商品图片、出售价格和类别。SQL语句如下所示:<insertid="addGoods"parameterType="Goods">insertintogoods(goods_name,goods_img,sales_price,is_sales,cid)values(#{goodsName},#{goodsImg},#{salesPrice},1,#{category.cid})</insert>删除商品信息卖家和管理员登录后台系统,进入商品管理页面删除商品,SQL语句如下所示:<updateid="deleteGoods"parameterType="int">updategoodssetis_delete=1wheregoods_id=#{goodsId}</update>用户管理新增用户管理员进入用户管理界面,点击添加用户,输入用户信息后数据保存到数据库中<!—新增用户并返回自增的用户id--><insertid="addUser"parameterType="Users"><!--获取刚添加用户的用户id--><selectKeykeyProperty="userId"resultType="int"order="AFTER">selectLAST_INSERT_ID();</selectKey>insertintousers(uname,upwd)values(#{uname},#{upwd})</insert>本章小结本章主要介绍了本系统的开发所用工具和开发环境。对系统中一些重要功能的实现进行简单介绍,包括订单管理功能、商品管理功能、购物车功能、发货管理功能和用户管理功能。
总结与展望这四年中:我收获了彼此扶持、互相陪伴的同学;收获了诲人不倦、传道受业的老师;收获了扎实的专业理论知识;更收获了从学校迈向社会这个中转站教会我的诸多道理。而今,毕业答辩即将来临,在准备毕业设计的过程中,我亦受益良多。往常的学习和作业多是对理论知识进行融会贯通,实操很少,而毕业设计的过程却是要我从零开始,去寻找方向、去研究原理、去做预算推论、去进行实践,在实验中获得结果。这无疑是一个复杂的过程,也是一个成长的过程。初时,我一头雾水,哪怕确立了设计方向,我也并不能顺利的进行下去,这对于成长过程还算顺利的我无疑是一个打击。我拿着粗粗一个大纲百愁莫展,眼看着身边同学一个个都进行到下一步,我一度非常沮丧。后来多亏我的指导老师给我点拨一下,我的同学也来主动帮助我寻找思路,我这才静下心了查找资料、多做调研,顺利进行。但就是这样的过程,前进发现方案的过程,也许就是不断试错的过程。在试错的过程中,遇到失落和挫败也毫无办法,因为唯有蒙头前进一条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺购房合同
- 调味酱购销合同范本
- 西班牙语翻译服务合同协议书
- 临时帐篷购销合同
- 煤油销售合同
- 企业白酒采购合同
- 补充合同的书写格式
- 儿童奶粉购销合同样本
- 土地居间协调合同范本
- 纺织品文化创意合同
- 新修订中华人民共和国行政许可法全文解读学习
- 法院特别委托书授权模板
- 品质年度总结及来年计划
- 学生体质健康存在的主要问题及改进措施
- 2024年执业药师资格继续教育定期考试题库(附含答案)
- 安徽工程大学《自然语言处理及应用》2022-2023学年第一学期期末试卷
- 2024年室内设计协议书
- 中储粮西安分公司招聘真题
- 大学人工智能期末考试题库
- 《资治通鉴》导读学习通超星期末考试答案章节答案2024年
- 探寻中国茶:一片树叶的传奇之旅学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论