《MySQL数据库应用实战教程(微课版)》第05章-数据库建模体验_第1页
《MySQL数据库应用实战教程(微课版)》第05章-数据库建模体验_第2页
《MySQL数据库应用实战教程(微课版)》第05章-数据库建模体验_第3页
《MySQL数据库应用实战教程(微课版)》第05章-数据库建模体验_第4页
《MySQL数据库应用实战教程(微课版)》第05章-数据库建模体验_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目5“在线商店”项目

的数据建模体验任务1需求分析任务1需求分析5.1.1需求描述5.1.2信息收集5.1.3系统功能设计5.1.4业务流程处理任务2数据结构设计任务3数据结构的实施和数据的初始化5.1.1需求描述1.项目概况项目名称:在线商店数据库名:eshop2.需求概述项目的用户分为两大类:购物的客户和内部员工。项目的功能也分为两大类:一类是面向客户的前台功能,另一类是面向员工的后台功能。购物的客户:客户可以在线注册、浏览商品、将商品加入购物车,最后签收商品并进行评价内部员工:员工可以在后台对客户、员工、商品、订单进行管理,并实现发货流程,提供统计功能。微课:5-1在线商店项目建模体验5.1.2信息收集1.销售单据组成:由订单头和订单行组成,称为订单头表、订单行表订单头:在一份单据中只出现一次的数据订单行:在一份单据中会重复出现的数据,可能是一次,也可能数次或数十次联系:一个订单有多行,因此是一对多联系}订单行订单头{订单头{5.1.2信息收集(续一)2.销售单据的状态购物车(状态0):当客户购物时,创建一个新的订单,作为购物车使用订单(状态1):当客户对购物车的商品确认下单后,该单据成为正式的订单发货单(状态2):订单经审核后(审核人签字),这个单据成为发货的依据出库单(状态3):订单出货以后(发货人签字),成为出库单销售单(状态4):客户签收后,可以添加评价,这时这个单据成为销售单,长期保存5.1.2信息收集(续二)3.客户信息从图5.1所示的销售单据中可以追踪到客户的有关信息,客户不仅有名称、电话、邮件、收货地址等信息,还有账号、密码等用户注册和登录用的信息}订单行订单头{订单头{5.1.2信息收集(续二)4.员工信息从图5.1所示的销售单据中可以追踪到员工的有关信息,员工不仅有姓名、性别、电话、职务等信息,还有账号、密码以及员工类型等信息。员工类型用于标识员工的权限,这些权限可以体现在审核权限、发货权限等}订单行订单头{订单头{5.1.2信息收集(续二)5.商品信息商品有名称、品牌、单位、单价等信息,从委托方可以获悉商品的商品类别属性,这个属性可以独立出来,它只有类别名称一个属性}订单行订单头{订单头{5.1.3系统功能设计前台功能客户使用,可以注册、购物、收货等后台功能员工使用,可以管理商品、客户、订单等5.1.4业务流程处理选购商品客户将选中的商品加入购物车,加入购物车的同时可以指定购买的件数;在加入购物车时,如果该客户没有可用的购物车(状态为0的销售单据),则新创建一个购物车确认下单客户在结束选购时,单击“我的购物车”,这时显示购物车内的商品和数量,以及总金额;用户单击“确认下单”,将销售单据的状态从0改为1公司审核发货公司审核发货分为两道手续,一是审核人员审核,二是发货人员发出商品;前者是将销售单据的状态从1改为2,后者是将销售单据的状态从2改为3。客户签收客户收到商品后,签收订单,将销售单据的状态从3改为4,同时也可以添加评价信息01234订单状态选择商品确认下单公司审核公司发货客户签收5.1.4业务流程处理为简化项目开发本项目不考虑货款的处理,没有在线支付功能,而是通过审核人员的审核来决定是否可以发货从购物流程来看,选购商品、确认下单和客户签收是前台的功能,公司对订单的审核和发货是后台的功能项目实施仅实现前台功能后台功能留待读者挑战一下任务2数据结构设计任务1需求分析任务2数据结构设计5.2.1规范化设计5.2.2数据结构设计任务3数据结构的实施和数据的初始化5.2.1规范化设计(步骤1)1.列出所有二维表(实体)将销售单据拆分为以下5个实体,尽可能列出全部属性客户(customer):客户有姓名、电话、邮件、收货地址等属性。订单头(orderhead):订单头包括订单编号、客户信息、订单日期、备注、审核日期和发货日期等属性。订单行(orderline):订单行是同一个订单内的每一种商品,有商品ID和数量等属性。商品(goods):商品有名称、品牌、单位、单价等属性。员工(staff):员工有姓名、性别、电话、职务(即角色)等属性。一定要把销售单据的订单头和订单行拆分出来。根据系统功能设计中的商品类别管理功能,还需要添加一个商品类别表。商品类别(category):商品类别只有一个名称属性。5.2.1规范化设计(步骤2)2.设置主键和外键为每个实体(表)设置主键在有联系的表之间建立外键和主键的参照在拆分过程中为从表设置外键在后续步骤中,也要保证主键和外键的设置5.2.1规范化设计(步骤3)3.检查属性值的原子性检查所有表的每一列,发现客户的收货地址不是原子性的例如可以将“福建省厦门市思明路16号”拆分为“福建省”“厦门市”“思明路16号”经与委托方讨论,将收货地址拆分为3列省市区:全国34个省市区地级市:全国4000多个地级市街区地址:具体的街区地址优点如下方便管理、方便统计可以规范用户的输入5.2.1规范化设计(步骤4)4.检查属性值是否重复检查所有表的每一列,发现前一步拆分出来的省市区和地级市列有属性值重复的情况,这时可以将客户表直接拆分为3张表。省市区(province):客户所属的省份、直辖市、自治区,简称省级市。地级市(area):客户所在的地区(地级市、区、自治州、盟等,简称地级市)。客户(customer):客户有姓名、电话、邮件、地级市ID、街区地址等属性。客户表参照地级市表,地级市表参照省市区表,因此客户表的收货地址改为两列:地级市ID和街区地址其他有重复值的列采用“内部编码”方式加以处理5.2.1规范化设计(步骤5和步骤6)5.检查表是否包含多个实体检查所有表,没有发现包含多个实体的表。6.合并相同的实体检查所有表,没有发现相同的实体。5.2.2数据结构设计表1省市区表(shop_province)表2地级市表(shop_area)表3客户表(shop_customer)表4商品类别表(shop_category)表5商品表(shop_goods)表6员工表(shop_staff)表7订单头表(shop_order_head)表8订单行表(shop_order_line)在线商店的扩展ER图这是扩展ER图“在线商店”项目数据结构(一)完整的“在线商店”项目数据结构见教材的附录C省市区表和地级市表用于客户地址,客户输入时可以从中选择地级市表参照省市区表,而地级市表又被客户表参照“在线商店”项目数据结构(二)客户表保存客户的信息,客户注册时生成客户的地址分为两个部分:街区地址、地级市id(参照地级市表),后者参照省市区表其中用户等级和状态采用“内部编码”的方式来处理重复值“在线商店”项目数据结构(三)商品表和商品类别表商品表参照商品类别表“在线商店”项目数据结构(四)员工表,其中的角色和状态采用“内部编码”的方式来处理重复值“在线商店”项目数据结构(五)订单头表参照下述表客户表——谁是购物人员工表——谁审核的员工表——谁发货的订单头表的状态特别重要0=购物车1=下单2=审核(已收到货款)3=发货4=已签收设计完成后,如果需要修改,将导致项目部分重做“在线商店”项目数据结构(六)订单行表参照下述表订单头表——是哪一张订单的,也就知道了谁是购物人,以及发货地址商品表——是什么商品,也就知道了价格任务3数据结构的实施和数据的初始化任务1需求分析任务2数据结构设计任务3数据结构的实施和数据的初始化5.3.1【实训5-1】数据结构的实施5.3.2【实训5-2】数据的初始化5.3.1【实训5-1】数据结构的实施根据Jitor校验器的要求,在dbForge上完成“【实训5-1】数据结构的实施”本实例代码见【实训5-1】的指导材料,无需手工打字1.创建数据库见教材第123页2.创建数据表见教材第123~124页3.建立联系见教材第125页【实训5-1】5.3.2【实训5-2】数据的初始化根据Jitor校验器的要求,在dbForge上完成“【实训5-2】数据的初始化”本实例代码见【实训5-2】的指导材料,无需手工打字通过数据,熟悉数据结构员工数据员工表(shop_staff)【实训5-2】5.3.2【实训5-2】数据的初始化(续一)通过数据,熟悉数据结构客户数据省市区表(shop_province)地级市表(shop_area)客户表(shop_customer)5.3.2【实训5-2】数据的初始化(续二)通过数据,熟悉数据结构商品数据商品类别表(shop_category)商品表(shop_goods)5.3.2【实训5-2】数据的初始化(续三)通过数据,熟悉数据结构销售单据订单头表(shop_order_head)订单行表(shop_order_line)5.3.2【实训5-2】数据的初始化(续四)输入完成后,查询输入的数据,验证数据的正确性,特别是外键参照主键的联系查询订单头信息(id=2)下述代码可以查询id为2的订单头的信息。Selectshop_customer.col_name收件人姓名,shop_order_head.id_shop_order_head订单编号,shop_customer.col_mobile收件人电话,shop_customer.col_email电子邮件,shop_order_head.col_order_date订货日期,concat(shop_province.col_name,shop_area.col_name,shop_customer.col_address)收货地址,shop_order_head.col_ammount金额,shop_order_head.col_remark备注,shop_staff.col_name审核人,shop_order_head.col_audit_date审核日期,shipping.col_name发货人,shop_order_head.col_shipping_date发货日期fromshop_order_headinnerjoinshop_customeronshop_order_head.id_shop_customer=shop_customer.id_shop_customerinnerjoinshop_areaonshop_customer.id_shop_area=shop_area.id_shop_areainnerjoinshop_provinceonshop_area.id_shop_province=shop_province.id_shop_provinceinnerjoinshop_staffonshop_order_head.id_shop_staff1audit=shop_staff.id_shop_staffinnerjoinshop_staffshippingonshop_order_head.id_shop_staff2shipping=shipping.id_shop_staffwhereid_shop_order_head=2;5.3.2【实训5-2】数据的初始化(续五)查询订单行信息(id=2)查询结果如图5.9所示比较查询结果与原始数据,它们是一致的Sel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论