一、概述1.1需求背景伴着电子时代的迅猛发展和人民物质生活的水平的提高,越来越多的电子购物浪潮也汹涌而来。我们容身在这个信息化的大时代,网购也就成了许多人生活中必不可少的一部分,足不出户的便捷式购物与传统的购物方式大相径庭,人们在享受到方便、实惠的同时也不必担忧安全的问题,既方便了自身也推动着国家经济的发展。电子商务网络购物平台,无疑是这个时代的进步。1.2编写目的数据库设计说明书是数据库设计的必要部分,对设计中的数据库的所有标识、逻辑结构和物理结构作出具体的设计规定。本数据库的设计说明书编写的目的是对网上购物系统设计的说明,明确系统中的各项功能与非功能的需求,从而做出系统的数据流图以及实体联系图。作为系统的基准文档,为以后的开发和维护提供依据。1.3软件定义Myeclipse10.0:一个非常优秀的用于开发Java、J2EE的Eclipse插件集合,Myeclipse功能非常强大,支持也十分广泛,尤其对各种开源产品的支持也不错。ApacheTomcat6.0:是一个开放源代码、运行servlet和JSPWeb应用软件容器。MicrosoftSQLServer2005:StructuredQueryLanguage1.4开发环境本电子商务网络购物平台的开发环境是Windows7、Myeclipse10.0、ApacheTomcat6.0,数据库环境是MicrosoftSQLServer2005。二、需求分析2.1问题陈述设计网络购物系统的数据库。2.1需完成的功能客户功能:(1)游客可以查看商品信息,浏览网站信息,经过注册可以成为注册客户。(2)注册客户:注册、客户信息查看和修改。客户登录、确认客户信息,显示客户信息。商品信息浏览、购物车管理、商品查找、订单查询以及商品评论。结账、确认订单、订单状态查询、历史订单查询。商家功能:商品的增删改。订单处理、订单配送。客户注册后,登录到电子商务网站,进入购物流程。客户在浏览所有商品信息后,可以查看每个商品的详细信息,选择购买或加入购物车,购物车内可以随意增删商品,修改商品数量,并同时统计购物车内商品总额。客户确认购物车内的商品,选中购买,即可生成订单。可以查看订单状态,“0表示”商品未发出,“1”表示商品已发出。客户分为普通客户和VIP客户,依据购买商品的金额和数量,自动升级。不同的VIP等级享有不同的折扣。2.1数据流图网络购物系统总数据流图如下订单信息表客户商家1.0查看商品3.0生成订单商品信息2.0管理购物车商品信息结算数据4.0处理订单5.0支付过账6.0开发票发票信息表发票数据商品信息核对通过订单细节7.0管理商品商家信息表注册信息订购信息管理员8.0管理顾客核对通过订单信息商家信息表商品信息商品信息购买方式游客VIP会员9.0注册客户10.0修改客户信息注册信息不成功成功升级信息折扣信息客户信息客户信息表客户信息更改信息图1:网络购物系统总数据流图2.1数据字典客户表数据字典:字段中文描述数据类型是否为空备注UserID客户IDBigIntNotnull主键UserName客户名Varchar(30)NotnullRealName客户真实姓名Varchar(30)NotnullUserPassword客户密码Varchar(30)NotnullEmail客户邮箱Varchar(30)NotnullPhone联系电话Varchar(30)NotnullID身份证号Varchar(30)NotnullQuestion密码问题Varchar(30)NullResult答案Varchar(30)NullRegTime注册时间DatetimeNotnullGradeID会员等级BigIntNotnullAddressID地址IntNotnull表1:客户表字段信息商品表数据字典:字段中文描述数据类型是否为空备注GoodsID商品号BigIntNotnull主键GName商品名称Varchar(30)NotnullGPrice商品价格SmallmoneyNotnullGTypeID商品类别BigIntNotnullGIntro商品描述Varchar(200)NullGImage商品图片路径Varchar(100)NullGCount商品计数IntNotnullGSail商品销量BigIntNotnullGWeight商品重量BigIntNullGDateTime上架日期DatetimeNotnullGSize商品规格Varchar(100)Notnull表2:商品表字段信息商品类别表数据字典:字段中文描述数据类型是否为空备注TypeID商品类别号BigIntNotnull主键TypeName类别描述Varchar(50)Notnull表3:商品类别表字段信息商家表数据字典:字段中文描述数据类型是否为空备注ProducerID商家号BigIntNotnull主键ProName商家名Varchar(30)NotnullProAddress商家地址Varchar(50)NotnullProPhone商家电话Varchar(30)Notnull表4:商家表字段信息订单表数据字典:字段中文描述数据类型是否为空备注SubID订单号Varchar(30)Notnull主键UserID客户号BigIntNotnullGoodsID商品号BigIntNotnullRAddress送货地址Varchar(50)NotnullSpDate订购日期DatetimeNotnullSpCount订购数量IntNotnullGPrice单价SmallmoneyNotnullReceiptID发票号BigIntNotnullSpPrice订单金额MoneyNotnullSendDate发货时间DatetimeNotnullPayment付款方式Varchar(20)NotnullSendType运送方式Varchar(20)NotnullSendPrice邮费SmallmoneyNotnullState订单状态IntNotnull表5:订单表字段信息购物车表数据字典:字段中文描述数据类型是否为空备注CarID购物车IDBigIntNotnull主键UserID客户IDVarchar(10)NotnullGoodsID商品IDVarchar(20)NotnullOrderTime订购时间DatetimeNotnullOrderCount订购数量IntNotnullGoodsPrice单价SmallmoneyNotnullUserCheck用户确认IntNotnullOrderPrice购物总额MoneyNotnull表6:购物车表字段信息会员等级表数据字典:字段中文描述数据类型是否为空备注GradeID会员等级IDBigIntNotnull主键GradeType等级分类IntNotnull表7:会员等级表字段信息评论表数据字典:字段中文描述数据类型是否为空备注CommentID评论IDBigIntNotnull主键Content1内容Varchar(200)NotnullTitle标题Varchar(20)NotnullUserID客户IDBigIntNotnullProducerID商家IDBigIntNotnullCommentTime评论时间DatetimeNotnull表8:评论表字段信息供应表数据字典:字段中文描述数据类型是否为空备注SupplyID供应IDBigIntNotnull主键RealStock实际存货IntNotnullMinStock最低存货IntNotnullGoodsID商品IDBigIntNotnullProducerID商家IDBigIntNotnull表9:供应表字段信息发票表数据字典:字段中文描述数据类型是否为空备注ReceiptID发票IDBigIntNotnull主键SubID订单号BigIntNotnull表10:发票表字段信息地址表数据字典:字段中文描述数据类型是否为空备注AddressID地址IDIntNotnull主键Address地址Varchar(50)NotnullUserID客户IDBigIntNotnull表11:发票表字段信息三、数据库概念结构设计3.1E-R模型图的设计(1)寻找实体集客户VIP会员商品商家商品类别地址(2)寻找实体间联系客户与商品之间多对多联系:订单,评论1客户与VIP会员之间多对一联系:属于2会员等级与订单细节一对多:参照13订单细节与商品多对一:参照24订单细节预订单多对一:组成客户与商品之间一对多联系:购物车1客户与购物车一对一:拥有2购物车与商品一对多:存放3购物车与订单细节一对多:结算商家与商品之间多对多联系:供应商品与商品类别之间多对一联系:分类客户与地址之间一对多联系:所在(3)确定实体的属性客户:客户ID客户名客户真实姓名客户密码客户邮箱联系电话身份证号密码问题答案注册时间会员等级IDVIP会员:会员等级ID等级分类商品:商品号商品名称商品价格商品类别商品描述商品图片路径商品计数商品销量商品重量上架日期商品规格商家:商家号商家名商家地址商家电话地址:地址号地址名称商品类别:商品类别号类别描述(3)确定联系的属性订单:订单号客户号商品号送货地址订购日期订购数量单价发票号订单金额发货时间付款方式运送方式邮费订单状态购物车:购物车ID客户ID商品ID订购时间订购数量单价用户确认供应:供应ID实际存货最低存货商品ID商家ID分类:商品号商品分类客户类型属于:客户号客户类型评论:评论ID内容标题客户ID商家ID评论时间客户地址所在:客户号客户地址(4)画出E-R图客户订单细节商品购物车订单会员等级拥有组成存放结算参照1属于核对状态参照2n1n111n1n1nn1图2:客户与商品实体间的详细联系E-R图购物车客户商品类型客户类型VIP会员地址商家商品评论订单供应分类属于属于所在nn1n11mnmnmmnn1图3:网络购物系统E-R图四、数据库逻辑结构设计4.1E-R模型图转化为关系表(1)实体转化为单独的一张表客户VIP会员商品商家商品类别地址(2)多对多联系转化为单独的一张关系表购物车订单评论供应(3)其他一对多的联系通过在多的一方增加属性来实现客户表与会员等级:在客户表中增加会员等级ID商品与商品类型:在商品中增加类型号4.2描述基本表的关系E-R图转化为关系模型,关系的码用下划线标出。此为客户实体对应的关系模式:客户(客户号,密码,会员等级号,…)此为VIP会员实体对应的关系模式:VIP会员(会员等级号,等级类型)此为商品实体对应的关系模式:商品(商品号,描述,商品分类,商品名,…)此为商家实体对应的关系模式:商家(商家号,商家名,商家电话,…)此为商品类别实体对应的关系模式:商品类别(商品类别号,商品类别)此为联系“购物车”所对应的关系模式:购物车(购物车号,客户号,商品号,…)此为联系“订单”所对应的关系模式:订单(订单号,客户号,商品号,…)此为联系“评论”所对应的关系模式:评论(评论号,内容,客户号,…)此为联系“供应”所对应的关系模式:供应(供应号,实际存货,最少存货,…)4.3所有关系表达到BCNF范式4.4定义视图(1)订单表中只关联客户、商品的ID,而最终客户核对的应该是包含客户真实姓名在内的客户必要信息以及包含商品名称的商品信息,分别建立两个视图:1参照商品的订单细节createviewView_goodsasselect*fromtb_goodswhereGoodsID='201201'2参照客户信息的订单细节createviewView_userasselect*fromtb_userwhereUserID='201'4.5定义索引在经常查询的列上(主键)建立聚簇索引如:在商品信息表上建立索引createclusterindexIndex_GoodsIDontb_goods(GoodsID)4.6定义触发器(1)注册客户自动升级VIP--创建触发器tr_grade,实现