您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 管理信息系统 > 网上购物系统数据库设计
网上购物系统数据库的设计现在要求你为网上购物系统设计一个数据库,背景如下:网上购物系统前台的客户共分两类:一类是注册客户(正式客户),这类客户有基本的信息,可以对自己的进行信息的查看与修改,可以随时实现网上购物。当客户在网站所购商品总金额达一定数量,可以根据量值不同自动升级成为不同等级的VIP会员,并享受不同折扣优惠;另一类客户是游客(未注册客户),他只能查看、浏览网站信息。游客:可以查看商品信息、浏览网站信息,经过注册可以成为注册客户。注册客户:注册、客户信息查看和修改。客户登录、确认客户信息,显示客户信息。商品信息浏览、购物车管理、商品查找、商品评论和建议。结帐、确认订单、订单状态查询、历史订单查询。用户注册后,登陆到电子商务网站中,可以进入购物流程(或在结帐之前注册并登陆系统)。客户在浏览商品后,可将满意商品放入购物车,购物车内可以随意增加、删除商品,修改商品数量,并同时统计购物车内商品总额。商品结帐前,必须填写一张配送单。配送单默认为客户注册时的基本信息,当然配送地址可由客户修改为合适的收货地址,支付方式也可根据提示由客户自定。客户确认购物车内信息无误,即可生成订单。客户可以在前台页面查看订单状态,订单状态可以是“0”或“1”,“1”表示订单上的商品已发出,“0”表示订单上的商品未发出。注册客户分为普通客户和VIP客户。当普通客户总的订单金额达到10000元,即可升级为VIP客户。VIP客户一般分为三个等级,对他们的优惠策略是在普通客户的价格上同时享有折扣优惠。其中。三级会员,订单金额在[10000,15000)元,享受折扣9折;二级会员,订单金额在[15000,25000)元,享受折扣8.5折;一级会员,订单金额在25000及以上,享受折扣7.5折。每种商品包含商品号(唯一)、商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量和商品其它描述。每个客户包括客户号(唯一)、客户名、E-Mail、密码、姓名、性别、邮政编码、地址(一个客户可有几个地址)、客户所属VIP级别、折扣优惠。每个订单包含订单号、客户号、收货地址、订单日期、订单金额、订单明细(每个订单都有几个明细)内容为商品号、单价、订货数量。由于处理上的要求,每一订货细则中还应有一个订单处理状态。客户可以给商品发表评论,主要有评论号、客户号、商品号、客户邮箱、评论内容、评论时间。请你设计一个数据库,并确定要满足的各种约束,使得其中:保存了所需的所有信息支持商品管理的各种应用尽可能地优化:减少冗余、提高查询速度画实体-联系图将实体-联系图转换为关系表实体-联系图寻找实体集:客户VIP会员商品生产厂商商品类别地址寻找实体集之间的联系:客户和商品之间的多对多联系:订单、评论客户和VIP会员之间的多对一联系:VIP会员等级生产厂商和商品之间的多对多联系:供应商品和商品类别之间的多对一联系:商品类别客户和地址之间的一对多联系:客户地址确定实体的属性:客户:客户号、密码、姓名、性别、单位、电子信箱、身份证号VIP会员表:会员等级、会员折扣商品:商品号、商品名称、类别号、商品描述、单位、规格、单价、其他?生产厂商表:厂商号,生产厂商名、地址、电话商品类别:类别号、类别名称地址:地址号、地址名称确定联系的属性:订单:订单号、客户号、商品号、收货地址、订货日期、订货数量、单价、发票号码、订单金额、发货日期供应:商品号、厂商号商品分类:商品类别号、类别名称客户类型:客户号、客户类型评论:评论号、客户号、商品号、客户邮箱、评论内容、评论时间。客户地址表:客户号、客户地址检查是否包含了所有必需的信息?如何确定客户类型?商品类型分为手机、小灵通,表示为商品的一个属性还是商品和商品类别的联系?商家能提供订单商品的所有数量吗?商家如何保证日常销售?不同VIP等级享有不同的折扣,具体方案如何?客户如何判断订购商品是否发出?订单上的订单金额是如何取得其值?客户分为普通客户和VIP会员客户类型:类型号、类型名称客户和客户类型间存在多对一的联系商品分为手机、小灵通表示为商品的一个属性还是商品和商品类别的联系?商品分类:类别号、类别名称商品和商品类别之间存在多对一的联系商家能提供订单商品的所有数量吗?给供应表增加属性:实际存货量若订单上商品数量超过实际库存则取实际库存值或取消订单。商家如何保证日常销售?给供应表增加属性:最低存货量若供应表的实际存货量低于最低存货量,应及时补货不同VIP等级享有不同的折扣,具体方案如何?给客户添加一个属性:vip等级,根据等级分别享有10折(即普通客户)、9折、8.5折、7.5折优惠。客户如何判断订购商品是否发出?给订单添加一个属性:订单状态。订单状态可以是“0”或“1”,“1”表示订单上的商品已发出,“0”表示订单上的商品未发出。若订单不能在规定日期送达,客户可退单或做其它处理。订单上的订单金额是如何取得其值?在一个订单上可能有多种商品,因此,订单金额是一个计算列,不能有客户输入一个值,管理员可以设置触发器来完成统计功能。小结实体:客户:客户号、密码、姓名、类型号、性别、单位、电子信箱、身份证号、VIP等级VIP会员表:会员等级、会员折扣商品:商品号、商品名称、类别号、商品描述、单位、规格、单价、其他?生产厂商表:厂商号,生产厂商名、地址、电话商品类别:类别号、类别名称地址:地址号、地址名称客户类型:类型号、类型小结(2)实体间的联系:商品客户商品类别VIP会员分类n1订单mn属于n1供应生产厂商m评论nnm地址所在n1商品mn属于客户类型11检查是否支持各种应用能否及时更新客户累计的订购金额?需要创建一个触发器,当客户更新订购信息时能及时而自动地统计客户的订购金额如何使客户在完成一定的订购金额或数量后自动VIP客户?普通客户变成VIP客户主要看客户累计完成的订购金额或数量,如果是达到一定要求,也必须由触发器便自动将客户升级为不同的VIP客户。需要在客户实体中增加一个属性:VIP等级如何判断订单商品已经发送?为了方便查看所购商品是否已发出,可以在订单中增加属性:订单状态实体联系图转换为关系表实体转化为单独的一张表客户:客户号、密码、姓名、性别、单位、电子信箱、身份证号、VIP等级VIP会员表:会员等级、会员折扣商品:商品号、商品名称、类别号、商品描述、单位、规格、单价生产厂商表:厂商号,生产厂商名、地址、电话商品类别:类别号、类别名称地址:地址号、地址名称客户类型:类型号、类型多对多联系转换为一张单独的关系表订单:订单号、客户号、商品号、收货地址、订货日期、订货数量、单价、订单状态、发票号码、订单金额、发货日期评论:评论号、客户号、商品号、客户邮箱、评论内容、评论时间。供应:商品号、厂商号、最低存货量、实际存货量其他一对多的联系通过在多表中添加属性来实现:客户:客户号、姓名、密码、客户类型、性别、单位、电子信箱、身份证号、VIP等级商品:商品号、商品名称、类别号、商品描述、单位、规格、单价优化为了减少客户表中的冗余,将客户表分解为:客户表:客户号、姓名、密码、性别、单位、电子信箱、身份证号、VIP等级单位表:单位号、单位名称、联系电话客户地址表:客户号、客户地址为了减少系统开销,将客户类型表删除,其主要信息转换成客户表的客户类型属性;客户类型有两种:普通和VIP,若为普通,则在VIP等级中取值0。地址表也删除,其主要信息放在客户地址表中。为了减少订单的冗余,将订单表分解为:订单总表:订单号、客户号、收货地址、订货日期、订单状态、发票号码、订单金额、发货日期订单明细表:订单号、商品号、订货数量、单价、订货日期分解前后该表分别属于第几范式?确定完整性约束确定实体完整性约束各表主键是什么?(略)参照完整性约束各表外键是什么?(略)用户自定义完整性约束数据类型约束数据长度、精度约束取值范围约束客户表中密码至少6位,并不能与客户号同名。性别只能取‘M’或‘F’电子信箱的格式应为“xxx@xxx.xxx”格式。订单表中订单号共12位,前8位是订货日期,后4位是流水号,格式为“200707010001”。订货时间要早于出货时间。发票号码必须唯一。订单状态取值为“0”,“1”。订单金额必须是明细表中同一订单所有商品总价格之和(触发器完成)。其他:如默认值、空值等等还有其他约束吗?进一步的思考在这种数据库模式下,能否检测得到某一客户所购商品数量是否超过实际存量?可以如何改进?如何实现商品销售排行榜?如何确认畅销商品、滞销商品?这些关系表达到了第几范式?
本文标题:网上购物系统数据库设计
链接地址:https://www.777doc.com/doc-4844589 .html