资源描述:
《swe14090_李鼎_数据库设计的报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库设计的典型案例9/10数据库设计报告本章要点²网上书店管理系统的数据库设计本章学习目标²网上书店管理系统的需求分析²网上书店管理系统的ER图²网上书店管理系统的关系数据库模式9数据库设计的典型案例9/10在第7章里我们已经学习了有关数据库设计的基本理论和方法。本章通过学生选课管理系统数据库设计案例,实际讲授数据库的设计方法,加深对第七章的理解,提高我们的综合设计的能力。一、案例的系统需求简介1、用户总体业务构造网上书店管理系统,主要包括四个部分:图书信息,订单信息,购书者信息l图书信息包括:图书编号,
2、图书类别,图书名称,图书价格,图书简介l购书者信息:包括购买编号、姓名、性别、年龄、联系方式、住址、购买书的名称l订单信息:包括订单号、图书编号、顾客编号、顾客姓名、顾客住址、联系电话、付款方式l管理员信息:管理员登陆名、管理员密码9数据库设计的典型案例9/102、系统功能设想图1网上书店管理系统结构图9数据库设计的典型案例9/103、业务流程分析(1)系统的业务流程图开始书店首页选择书店概况网上购书书籍信息查询会员登陆注册返回首页图4业务流程图图3数据流程图(2)数据流程图买书使用网上银行付款现金支付网上
3、支付修改数据库成功下订单9数据库设计的典型案例9/10二概念设计1、实体图4用户实体图图5书籍实体9数据库设计的典型案例9/10图6类目实体图7订单实体图书名图书ID用户ID1、系统局部E-R图用户姓名单价图书用户NM购买图书简介联系方式地址图8用户-图书实体ER图9数据库设计的典型案例9/103、系统全局E-R图9数据库设计的典型案例9/10三逻辑设计逻辑设计就是把E-R图转换成关系模式,并对其进行优化。1、E-R图到关系模式的转换用户(用户id,用户名,密码,角色,电子邮件,地址,邮编,电话,信用卡号,
4、信用卡类型,信用卡过期时间)书籍(书籍id,类目id,书名,描述,图标,库存,单价)类目表(类目id,类目名,图标,描述)订单(订单id,用户id,书籍id,订单中分项号,数量,状态)评论(评论id,用户id,书籍id,评论内容,评论时间)具体的数据库表如下。(1)用户表(User)用户表主要是记录用户的基本信息,包括用户名、密码等信息,如表3-1所示。表2用户(User)字段名类型长度备注useridVarchar8主键自动生成UsernameVarchar25用户名roleint2权限EmailVarc
5、har80电子邮件AddressVarchar80地址ZipVarchar20邮编PhoneVarchar80电话cartidVarchar50信用卡号carttypeVarchar20信用卡类型cartdateDate过期时间(2)书籍表(book)书籍表主要是记录了书籍的相关信息,如书籍名、书籍描述等,如表3-2所示。表3书籍表(book)字读名类型长度备注bookidVarchar25主键,id-CategoryidVarchar25外键,类目id9数据库设计的典型案例9/10NameVarchar8
6、0书名AuthorVarchar25作者DescnVarchar255描述QtyInt10库存PriceDecimal(10,2)单价(4)订单表(order)订单表主要记录了购买书籍后的记录,包括价格、数量等,如表3-4所示。表5订单表(order)字读名类型长度备注orderidVarchar32主键自动生成useridVarchar8外键用户表bookidVarchar25外键书籍表lineitemVarchar25订单中的分项quantityint10数量statusint2订单状态[p,y,n]o
7、rderdatedate下单时间2、关系模式的规范及调整3、各个数据表的表结构设计(1)用户表(User)的创建createtableUsers(useridVARCHAR(8)primarykey,usernameVARCHAR(25)notnull,roleint,emailVARCHAR(80)notnull,addressvarchar(80)notnull,phonevarchar(80)notnull,cartidvarchar(50)notnull,carttypevarchar(20)not
8、null)9数据库设计的典型案例9/10(2)图书表(book)的创建createtablebook(bookidvarchar(25)primarykey,authorvarchar(25)notnull,booknamevarchar(80)notnull,descnvarchar(255)notnull,qtyintnotnull,pricedecimalnotnull,)(3)订单表createtable