收藏 分销(赏)

数据库网上购物系统设计.doc

上传人:人****来 文档编号:4756213 上传时间:2024-10-12 格式:DOC 页数:19 大小:596.19KB 下载积分:8 金币
下载 相关 举报
数据库网上购物系统设计.doc_第1页
第1页 / 共19页
数据库网上购物系统设计.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
数据库应用课程设计报告 网上购物系统数据库设计 学生姓名:*** 学 号:201**** 班 级:******* 指导老师:*****老师 学 院:**学院 提交日期:2014年6月19日 数据库应用课程设计评阅 评阅项目 完成情况 得分 背景功能需求5% 概念设计 30% 逻辑设计 20% 物理设计 10% 数据库实施 15% 功能实现 10% 文档质量、设计过程表现10% 成绩 数据库应用课程设计 目 录 前言 1 1. 需求分析 1 1.1系统功能背景资料 1 1.2系统功能 1 2. 概要结构设计 2 3. 逻辑结构设计 6 3.1关系模式设计 6 3.2 关系模式的分析优化 6 4. 数据库物理设计 8 5. 数据库实施 10 5.1数据库构建 10 5.1.1各数据表说明 10 5.1.2数据库创建 11 5.2 数据库操作 11 6. 部分系统功能实现 15 7. 总结 15 前言 网络购物的兴起改变了人们的购物观念,也改变了人们的购物需求。每个人的购物清单都遍布全国各地,面对如此庞大的数据流量,网络购物系统应运而生,这个系统主要完成客户在网上购物时填写的订单信息所相关到的业务,并可以对所有的订单经及客户信息进行修改和查询。方便客户和网络商城人员查阅订单信息等。本系统主要建立了基本的需求表并优化,在它们之间建立好必要的联系方便查询和修改等,完成基本功能。 1. 需求分析 设计本系统模拟客户在网上购物的管理内容,包括查询商品信息、订单信息、客户信息、购买后商品评论等处理情况,系统需要管理的情况如下: 1.1系统功能背景资料 客户在网上购买商品的管理内容包括: 1) 可随时查询可订商品的详细情况,如商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量以及商品其他描述,便于客户选订。 2) 客户可订购多种所需商品,每种商品可订若干份,交清所需金额后,订购处理即告完成。 3) 为便于邮寄,客户需写明如下信息:客户名、EMAIL、姓名、性别、邮政编码、地址等,网店将即时为每一个客户编制唯一代码。 4) 商品售出,并且客户拿到后可对商品进行评价,商品所属网店店主可以对每条评论进行查看,一种商品可以有多人进行评论,系统要给每一条评论编号并记录评论内容、评论时间、发表人等。 5) 网上商城对每种商品订购人数不限,每个客户可多次订购,所订商品亦可重复。 1.2系统功能 1).查询可订购商品的详细情况。 2).客户通过管理员根据自己的需求选购商品,完成一次订购后需进行结账才能提交订单。 3).查询自己的购买情况。 4).可对各库表进行插入、修改、删除、查询等基本操作。 5).能详细查询某商品的订出情况,并且能统计出某商品总订购数量与总金额。 6).实现客户完成一次订购任务后汇总总金额。 7).网店可查询客户对商品的评价,并进行回复。 2. 概要结构设计 通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出网上购物系统E-R图。 图1 “商品”实体E-R图 图2 “客户”实体E-R图 图3 “订单”实体E-R图 图4 “订单明细”实体E-R图 图5 “生产厂商”实体E-R图 图6 “生产明细”实体E-R图 图7 “评论”实体E-R图 网上购物系统E-R图如下: 图8系统E-R图 3. 逻辑结构设计 3.1关系模式设计 根据概念结构的设计,可以将系统E-R图转换为以下关系模式(画横线的为各关系的码): 商品(商品号,商品名称,商品分类,厂商名,商品其他描述,单价),外码:厂商号 客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址),外码: 订单(订单号,客户号,收货地址,订单日期),外码:客户号 订单明细(订单号,商品号,数量,商品总价),外码:订单号,商品号 生产厂商(厂商号,厂商名,商品号,),外码:商品号 生产明细(厂商号,商品号,实际存货量,最低存货量),外码:厂商号,商品号 评论(评论编号,内容,评论时间,客户号),外码:客户号 3.2 关系模式的分析优化 1.对以上关系模式进行函数依赖分析 l 考察关系模式:商品(商品名称,商品分类,单价,商品其他描述,厂商号) 商品号—>商品名称 商品号—>商品分类 商品号—>单价 商品号—>商品其他描述 商品号—>厂商名 商品 它只有一个码:(商品编号)这里没有任何属性对(商品编号)部分依赖或传递依赖,所以此关系模式属于3NF。 l 考察关系模式:客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址) 客户号—>姓名 客户号—> EMAIL 客户号—>客户电话 客户号—>性别 客户号—>邮政编码 客户号—>地址 客户 它只有一个码:客户号,这里没有任何属性对客户编码部分依赖或传递依赖,所以此关系模式属于3NF。 l 考察关系模式:订单(订单号,客户号,收货地址,订单日期) 订单号—>客户号 订单号—>收货地址 订单号—>订报日期 订单 它有一个码:(订单号),这里没有任何属性对(订单号)部分依赖或传递依赖,所以此关系模式属于3NF。 l 考察关系模式:订单明细(订单号,商品号,数量,商品总价) (订单号,商品号)—>数量 (订单号,商品号)—>商品总价 订单详情 它有一个码:(订单号,商品号)这里没有任何属性对(订单号,商品号)部分依赖或传递依赖,所以此关系模式属于3NF。 l 考察关系模式:生产厂商(厂商号,厂商名,商品号) (厂商号)—>厂商名 (厂商号)—>商品号 厂商 它有一个码:(厂商号),这里没有任何属性对(厂商号)部分依赖或传递依赖,所以此关系模式属于3NF。 l 考察关系模式:生产明细(厂商号,商品号,实际存货量,最低存货量) (厂商号,商品号)—>实际存货量 (厂商号,商品号)—>最低存货量 l 考察关系模式:评论(评论编号,内容,评论时间,客户号) (评论编号)—>内容 (评论编号)—>评论时间 (评论编号)—>客户号 2.系统完整性设计 商品(商品号,商品名称,商品分类,厂商名,商品其他描述,单价)其中:商品号为主码,商品名称,商品分类,生产厂商,单价约束都为非空,商品其他描述可为空。 客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址)其中:客户号为主码;姓名,EMAIL,客户电话,性别,邮政编码,地址约束都为非空。 订单(订单号,客户号,收货地址,订单日期)其中:订单号为主码;客户号为外码,参照(客户(客户号));收货地址,订单日期约束都为非空。 订单明细(订单号,商品号,数量,商品总价),(订单号,商品号)为主码;订单号和商品号为外码,分别参照(订单(订单号))和(商品(商品号));数量,商品总价约束都为非空。 生产厂商(厂商号,厂商名,商品号)其中厂商号为主码;商品号为外码,参照(商品(商品号))厂商名约束为非空。 生产明细(厂商号,商品号,实际存货量,最低存货量)其中(厂商号,商品号)为主码;厂商号和商品号为外码,分别参照(生产厂商(厂商号))和(商品(商品号));实际存货和最低存货约束都为非空。 评论(评论编号,内容,评论时间,客户号)其中评论编号为主码;客户号为外码,参照(客户(客户号));内容,评论时间,约束都为非空。 4. 数据库物理设计 表4.1 商品信息表结构 字段名 说 明 类 型 长度 可否为空 约束 ProductID 商品号 字符型 10 否 主键 Productname 商品名称 字符型 20 否 Unitprice 单价 数值型 否 Category 商品分类 字符型 10 否 Manufacturename 厂商名 字符型 10 否 外码 Other 商品其他描述 字符型 50 是 表4.2 客户信息表结构 字段名 说 明 类 型 长度 可否为空 约束 CustomerID 客户号 字符型 10 否 主键 Name 姓名 字符型 20 否 Sex 性别 字符型 8 否 Email EMAIL 字符型 20 否 Postcode 邮政编码 字符型 10 否 Phonenumber 客户电话 字符型 20 否 Address 地址 字符型 50 否 表4.3 订单信息表结构 字段名 说 明 类 型 长度 可否为空 约束 OrderID 订单号 字符型 10 否 主键 CustomerID 客户号 字符型 20 否 外键 Orderdate 订单日期 数值型 否 Taddress 收货地址 字符型 50 否 表4.5 订单明细信息表结构 字段名 说 明 类 型 长度 可否为空 约束 OrderID 订单号 字符型 10 否 主键、外键 ProductID 商品号 字符型 26 否 主键、外键 quantity 数量 字符型 10 否 Totalprice 总价 字符型 20 否 表4.5 生产厂商信息表结构 字段名 说 明 类 型 长度 可否为空 约束 manufactureID 厂商号 字符型 10 否 主键 manufacturename 厂商名 字符型 26 否 ProductID 商品号 字符型 8 否 外键 表4.6 生产明细信息表结构 字段名 说 明 类 型 长度 可否为空 约束 manufactureID 厂商号 字符型 10 否 主键、外键 ProductID 商品号 字符型 10 否 主键、外键 Pquantity 实际存货量 字符型 10 否 Lquantity 最低存货量 字符型 10 否 表4.7 评论信息表结构 字段名 说 明 类 型 长度 可否为空 约束 CommentID 评论号 字符型 10 否 主键 Comment 内容 字符型 150 否 Commentdate 评论时间 数值型 否 CustomerID 客户号 字符型 10 否 外键 5. 数据库实施 5.1数据库构建 5.1.1各数据表说明 编号 数据表名称 类 型 内容 1 商品 主表 记录报刊信息 2 客户 主表 记录客户信息 3 订单 主表 记录订单基本信息 4 订单明细 辅助表 记录订单详细信息 5 生产厂商 辅助表 记录生产厂商基本信息 6 生产明细 辅助表 记录商品在厂的存货信息 7 评论 主表 记录评论信息 5.1.2数据库创建 在SQL SERVER 2005中创建网上购物系统数据库,在数据库中创建商品,客户,订单,订单明细,生产厂商,生产明细,评论数据表及加入相关约束。创建了满足管理需求的视图,写出相关业务操作所需的查询语句等。操作代码详见“20125973_孔维星.sql”文件。 5.2 数据库操作 --创建数据库shoppingonline create database shoppingonline on ( name=shoppingonline, filename='c:\shoppingonline_data.mdf', size=5, maxsize=10, filegrowth=10% ) log on ( name=shoppingonline_log, filename='c:\shoppingonline_log.ldf', size=3, maxsize=5, filegrowth=1 ) go --创建商品信息表ProductInfo create table ProductInfo ( Productid nchar(10) primary key, Productname nvarchar(20) not null, Unitprice money not null, category nchar(10) not null, manufacturename nchar(10) not null, other nvarchar(20) not null, ) go --创建客户信息表customerinfo create table customerinfo ( customerid nchar(10) primary key, name nvarchar(20) not null, sex nchar(1) not null, email nchar(20) not null, postcode nchar(10) not null, phonenumber nchar(11) not null, address nvarchar(50) not null ) go --创建订单信息表orderinfo create table orderinfo ( orderid nchar(10) primary key, customerid nchar(10) not null, orderdate datetime not null, taddress nvarchar(50) not null, foreign key (customerid) references customerinfo(customerid) ) go --创建订单明细信息表orderdetailinfo create table orderdetailinfo ( orderid nchar(10) not null, productid nchar(10) not null, quantity nchar(10) not null, totalprice nchar(20) not null, primary key (orderid,productid), foreign key (orderid) references orderinfo(orderid), foreign key (productid) references productinfo(productid) ) go --创建生产厂商信息表manufactureinfo create table manufactureinfo ( manufactureid nchar(10) not null primary key , manufacturename nchar(26) not null, productid nchar(10) not null, foreign key (productid) references productinfo(productid) ) go --创建生产明细信息表producedetailinfo create table producedetailinfo ( manufactureid nchar(10) not null, productid nchar(10) not null, Pquantity nchar(10) not null, lquantity nchar(10) not null, primary key(manufactureid,productid), foreign key (manufactureid) references manufactureinfo (manufactureid), foreign key (productid) references productinfo(productid) ) go --创建评论信息表commentinfo create table commentinfo ( commentid nchar(10) not null primary key , comment nchar(3) not null, commentdate datetime not null, customerid nchar(10) not null, foreign key (customerid) references customerinfo(customerid) ) go --插入数据 --商品信息表productinfo insert into productinfo values('0000001','铅笔',2,'黑色','一厂','成绵路号') insert into productinfo values('0000002','毛笔',8,'墨色','二厂','长虹大道号') insert into productinfo values('0000003','圆珠笔',5,'蓝色','三厂','仙人路号') --客户信息表customerinfo insert into customerinfo values('0000011','王强','男','12345678@','432645','18388886677','成都双流') insert into customerinfo values('0000022','吴霞','女','23456789@','564656','15823233334','湖北武汉') insert into customerinfo values('0000033','曾强','男','65415616@','582656','13689892130','湖南长沙') go --订单信息表orderinfo insert into orderinfo values('0000111','0000011','2014-02-02','成都双流') insert into orderinfo values('0000222','0000022','2014-03-03','湖北武汉') insert into orderinfo values('0000333','0000033','2014-04-04','湖南长沙') go --订单明细信息表orderdetailinfo insert into orderdetailinfo values('0000111','0000001','100','200') insert into orderdetailinfo values('0000222','0000002','50','400') insert into orderdetailinfo values('0000333','0000003','100','500') go --生产厂商信息表manufactureinfo insert into manufactureinfo values('0001111','一厂','0000001') insert into manufactureinfo values('0002222','二厂','0000002') insert into manufactureinfo values('0003333','三厂','0000003') go --生产明细信息表producedetailinfo insert into producedetailinfo values('0001111','0000001','9000','900') insert into producedetailinfo values('0002222','0000002','8000','800') insert into producedetailinfo values('0003333','0000003','7000','700') go --评论信息表commentinfo insert into commentinfo values('0011111','优','2014-04-04','0000011') insert into commentinfo values('0022222','良','2014-05-05','0000022') insert into commentinfo values('0033333','差','2014-06-06','0000033') go --简单查询 --查询全部商品的名称和单价 select productname,unitprice from dbo.ProductInfo --查询全部客户的编号、姓名、地址、联系电话 select customerid,name,address,phonenumber from dbo.customerinfo --查询全部订单的编号和订单日期 select orderid,orderdate from dbo.orderinfo --查询下过订单的客户的姓名 select name from dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid --查询订单编号为'0000111'的客户号、客户名、性别 select dbo.customerinfo.customerid,name,sex from dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid where orderid='0000111' 6. 部分系统功能实现 7. 总结 之前选择网上购物这个题目的时候,觉得这个题目应该是相对比较容易的,但是实际起来并非如此。在分析实体的时候,本来以为只需要题目给出的四个实体就可以了,但是在画E-R图的时候发现有冗余,所以我又添加了“生产明细”和“订单明细”两个表,另外,为了更细化系统,又添加了一个“生产厂商”表。不仅如此,在画E-R图的时候,我也犯了一些错误,比如给属性添加属性,这是对知识掌握不牢固的体现,提醒我要回去好好复习了。E-R图画出来之后就容易了,因为脉络已经基本清晰了,但是在确定字符长度的时候还是拿不准到底该写多少,在参考书上的内容之后才确定下来。由于VB已经学习了有一年时间了,有点生疏,在用VB做部分系统功能实现的时候,根据实验指导书一步一步走,最终还是做了出来。 通过这次的实践,我对数据库的学习有了进一步的巩固,但是回去之后还得再看一下书才可以,还有VB也得再复习复习了。另外,通过这次实践,也让我第一次把理论联系到了实际,虽然这个系统并不太完善,但是只要今后多练习,我相信还是能够掌握这门学科的。 15
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服