版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
一、概要设计
2.1
意义
伴随着信息化的发展,计算机走进了千家万户,人们的交流变得方便,方便了网民的生活!此外,伴随着卓越、当当、淘宝等网络购物平台的兴起,网络购物也被网民认可,首先,网上书店方便了网民的生活,更加便捷地、足不出户便可买到心仪的书籍;其次,网上购书减少了许多中间销售代理,因此价格会比较低,对广大网民的好处是非常明显的;再者,网上书店是信息化购物,基本上所有操作都是通过计算机程序自动完成的,因此大大降低了劳力的消耗;最后,电子商务与出版发行业的结合使发展网上书店及研究网上书店具有双重意义,充分结合互联网销售的特点探索图书发行的新渠道和新模式,是对电子商务科学的充实和补充,更是对出版发行业发行渠道和市场的开拓和创新。
数据库对于一个系统的意义是相当重要的,它关系到整个项目的整体流程,整个网站的后期维护便捷与否,从长远利益来看,数据库的设计是至关重要的。
2.2
目的
数据库,即存放数据的仓库,设计出数据库可以方便的运用于实际开发的应用程序或者网站当中,使其能够完成譬如增、删、改数据,本实验的目的在于通过一个简要的数据库设计理解整个数据库设计流程。
2.3
内容和要求
本实验将设计出一个网上书店数据库,其要求简要如下:
(1)系统用户由两类组成:管理员和客户。
(2)管理员负责后台管理:
①
图书信息的维护(增、删、改),图书要进行分类管理;
②
客户信息的维护;
③
订单的确认和删除。
(3)读者可以查询图书的基本信息,可以维护自己的信息,可以进行网上订书,可以查询订单处理的情况。
(4)在数据库设计中应考虑如下因素:
①
数据库的逻辑模型应能满足系统的基本需求;
②
数据库的逻辑模型应符合关系数据的规范化要求;
③
数据库表应具有基本的完整性约束。
二、需求分析
2.1
背景
一个书店中的书籍类别、数量是非常庞大的,虽然书籍的分类是非常规范,但仅仅局限于概念上的分类仍无法运用于实践当中,这就给管理人员带来了极大的工作量,因此就需要一个比较科学的管理办法来解决此问题。
由于数据库能够非常方便地解决此类问题,因此我们便想到了利用数据库来进行数据管理。
2.2
概要分析
该系统主要分为两部分,一个为普通会员用户部分,亦即前台系统。另外一个是系统的管理员部分,即后台系统。网上书店前台系统部分主要是实现网上选书、购书、产生订单等功能的系统。后台实现书籍管理、用户管理、订单处理等功能。
2.3
开发技术
开发工具:Microsoft SQLServer
2000
开发语言:SQL
开发技术:数据库开发技术
面向对象:需求者
SQL
Server 2000 是Microsoft
公司推出的SQL Server
数据库管理系统,该版本继承了SQL Server 7.0
版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98
的膝上型电脑到运行Microsoft Windows 2000
的大型多处理器的服务器等多种平台使用。本实验中最终将使用Microsoft SQLServer 2000数据库管理系统将我们设计的数据库实现。
2.4
系统主要功能
图2-1
系统功能模块图
三、E-R图
3.1 概念设计
系统共有九个实体:客户、管理员、图书类型、图书、订单、详细订单、参数设置、图书评价、信息反馈。
(1)客户(会员)的属性:自动编号CustomerId、客户名、客户密码、真实姓名、性别、客户电话、E-mail、地址、注册时间、提示问题、问题答案、登陆次数、最近登陆时间、邮编
(2)管理员的属性:自动编号AdminId、管理员名称、管理员邮箱、密码、权限标志
(3)图书类型的属性:自动编号BookTypeId、类别名称
(4)图书的属性:自动编号BookId、图书名称、图书类型、出版社、出版日期、开本、版次、图书作者、图书译者、图书ISBN、图书定价、图书页码、图书简介、图书目录、市场价、会员价、成交量、浏览次数、折扣、图书封面图、图书库存量、入库时间、封装方式
(5)订单的属性:自动编号Id、订单号OrderId、客户编号、下单日期、总订购数量、留言、送货方式、支付方式、收货人姓名、收货地址、收货人联系方式、备注、总卖出价
(6)详细订单属性:自动编号Id、详细订单OrderDetailId、订单号OrderId、图书编号、订购数量、发货状态、收货状态、卖出总价
(7)参数设置属性有:网站名、注册条款、公告、地址、邮编、电话号码等
(8)图书评价的属性:自动编号CommentId、图书编号、评论客户编号、评论客户名、评论时间、评论内容、审核标志
(9)信息反馈的属性:自动编号ReplyId、留言类型、留言主题、留言内容、留言客户编号、留言客户名、留言日期、客户IP
3.2 E-R图
图3-1
图书类别信息
图3-2
管理员信息
图3-3
图书信息
图3-4
客户信息
图3-5
购物车临时订购信息
图3-6
订单信息
图3-7
订单详细信息
图3-8
图书评论信息
图3-9
信息反馈
图3-10
网上书店顶层E-R图
四、逻辑结构
4.1
逻辑转换
根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为9个关系,详细信息如下所示:
客户(会员)(客户编号,客户名,客户密码,真实姓名,性别,客户电话,E-mail,地址,注册时间,提示问题,问题答案,登陆次数,最近登陆时间,邮编)
管理员(管理员编号,管理员名称,管理员邮箱,密码,权限标志)
图书类型(图书类型编号,类别名称)
图书(图书编号,图书名称,图书类型,出版社,出版日期,开本,版次,图书作者,图书译者,图书ISBN,图书定价,图书页码,图书简介,图书目录,市场价,会员价,成交量,浏览次数,折扣,图书封面图,图书库存量,入库时间、封装方式)
购物车零时订购信息(客户编号,图书编号,订购数量,总价,是否付款)
订单(Id,订单号,客户编号,下单日期,总订购数量,留言,送货方式,支付方式,收货人姓名,收货地址,收货人联系方式,备注,总卖出价)
详细订单(Id,详细订单编号,订单号,图书编号,订购数量,发货状态,收货状态,卖出总价)
图书评价(图书评价编号,图书编号,评论客户编号,评论客户名,评论时间、评论内容,审核标志)
信息反馈(信息反馈编号,留言类型,留言主题,留言内容,留言客户编号,留言客户名,留言日期,客户IP)
4.2
细化表结构
为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:
(1)客户信息表tb_customerinfo
表1
客户信息表
列名
|
说明
|
数据类型
|
约束
|
CustomerId
|
客户编号
|
int
|
主码(自增字段)
|
CustomerName
|
客户名称
|
varchar(20)
|
主码not null
|
CustomerPwd
|
客户密码
|
varchar(20)
|
not null
|
Customertruename
|
真实姓名
|
varchar(20)
|
not null
|
CustomerSex
|
性别
|
varchar(2)
|
not null,
取“男”或“女”
|
CustomerTel
|
客户电话
|
varchar(20)
|
not null
|
CustomerEmail
|
E-mail
|
varchar(20)
|
not null
|
CustomerAddr
|
地址
|
varchar(20)
|
not null
|
CustomerRegTime
|
注册时间
|
datetime
|
not null
|
CustomerQues
|
提示问题
|
varchar(200)
|
|
CustomerAnswer
|
问题答案
|
varchar(200)
|
|
CustomerLogTime
|
登陆次数
|
int
|
not null
|
CustomerLastLogT
|
最近登陆时间
|
datetime
|
not null
|
(2)图书类型信息表tb_booktypeinfo
表2
图书类型信息表
列名
|
说明
|
数据类型
|
约束
|
BookTypeId
|
图书类型编号
|
int
|
主码(自增字段)
|
BookTypeName
|
类别名称
|
varchar(50)
|
not null
|
(3)图书信息表tb_bookinfo
表3
图书信息表
列名
|
说明
|
数据类型
|
约束
|
BookId
|
图书编号
|
int
|
主码(自增字段)
|
BookTypeId
|
图书类型
|
int
|
not null,
引用tb_booktypeinfo的外码
|
BookName
|
课程名
|
varchar(20)
|
not null
|
BookPress
|
出版社
|
varchar(20)
|
not null
|
BookPubDate
|
出版日期
|
datetime
|
not null
|
BookSize
|
开本
|
varchar(10)
|
not null
|
BookVersion
|
版次
|
varchar(10)
|
not null
|
BookAuthor
|
图书作者
|
varchar(10)
|
not null
|
BookTanslor
|
图书译者
|
varchar(10)
|
|
Bookisbn
|
图书ISBN
|
varchar(20)
|
not null
|
BookPrice
|
图书定价
|
money
|
not null
|
BookPages
|
图书页码
|
int
|
not null
|
BookOutline
|
图书简介
|
varchar(200)
|
not null
|
BookCatalog
|
图书目录
|
varchar(200)
|
not null
|
BookMprice
|
市场价
|
money
|
not null
|
BookPrprice
|
会员价
|
money
|
not null
|
BookDealmount
|
成交量
|
int
|
not null
|
BookLookmount
|
浏览次数
|
int
|
not null
|
BookDiscount
|
折扣
|
decimal
|
not null
|
BookPic
|
图书封面图
|
varchar(20)
|
not null
|
BookStoremount
|
图书库存量
|
int
|
not null
|
BookStoretime
|
入库时间
|
datetime
|
not null
|
BookPackstyle
|
封装方式
|
varchar(20)
|
not null
|
(4)管理员信息表tb_manager
表4
管理员信息表
列名
|
说明
|
数据类型
|
约束
|
AdminId
|
管理员编号
|
int
|
主码(自增字段)
|
AdminName
|
管理员名称
|
varchar(10)
|
not null
|
AdminPwd
|
密码
|
varchar(20)
|
not null
|
AdminFlag
|
权限标志
|
int
|
not null
|
(5)参数设置信息表tb_parameter
表5
参数设置信息表
列名
|
说明
|
数据类型
|
约束
|
webname
|
网站名
|
varchar(20)
|
主码(自增字段)
|
regtiaoyue
|
注册条款
|
varchar(100)
|
not null
|
notice
|
公告
|
varchar(100)
|
not null
|
address
|
地址
|
varchar(20)
|
not null
|
postcode
|
邮编
|
varchar(10)
|
not null
|
tel
|
电话号码
|
varchar(10)
|
not null
|
copyright
|
版权
|
varchar(20)
|
not null
|
weblogo
|
网站Logo
|
varchar(100)
|
not null
|
website
|
网站地址
|
varchar(10)
|
not null
|
affordmethod
|
支付方式
|
varchar(100)
|
not null
|
shopstream
|
购物流程
|
varchar(100)
|
not null
|
postmethod
|
送货方式
|
varchar(100)
|
not null
|
postprice
|
送货费用
|
money
|
not null
|
Postdescp
|
运输说明
|
varchar(100)
|
not null
|
worktime
|
工作时间
|
varchar(20)
|
not null
|
service
|
售后服务
|
varchar(100)
|
not null
|
law
|
使用法律
|
varchar(100)
|
not null
|
commques
|
常见问题
|
varchar(100)
|
not null
|
dealrule
|
交易条款
|
varchar(100)
|
not null
|
(6)购物车临时订购信息tb_shopbook
表6
购物车临时订购信息表
列名
|
说明
|
数据类型
|
约束
|
CustomerId
|
客户编号
|
int
|
主码(自增字段)
|
BookId
|
图书编号
|
int
|
主码,
引用tb_bookinfo的外码
|
ordermount
|
订购数量
|
int
|
not null
|
price
|
总价
|
money
|
not null
|
ispay
|
是否付款
|
varchar(10)
|
not null,默认为未付款,取“未付款”或“已付款”
|
(7)订单信息表tb_order
表7
订单信息表
列名
|
说明
|
数据类型
|
约束
|
Id
|
自动编号
|
int
|
not null(自增字段)
|
OrderId
|
订单编号
|
varchar(20)
|
主码
|
CustomerId
|
客户编号
|
int
|
not null,
引用tb_customerinfo的外码
|
Orderdate
|
下单日期
|
datetime
|
not null
|
Ordermount
|
总订购数量
|
int
|
not null
|
message
|
留言
|
varchar(100)
|
|
postmethod
|
送货方式
|
varchar(100)
|
not null
|
paymethod
|
支付方式
|
varchar(100)
|
not null
|
recevername
|
收货人姓名
|
varchar(10)
|
not null
|
receveraddr
|
收货地址
|
varchar(20)
|
not null
|
recevertel
|
收货人电话号码
|
varchar(10)
|
not null
|
memo
|
备注
|
varchar(100)
|
|
totalprice
|
总卖出价
|
money
|
not null
|
(8)订单详细信息表tb_orderdetail
表8
订单详细信息表
列名
|
说明
|
数据类型
|
约束
|
Id
|
自动编号
|
int
|
not null(自增字段)
|
OrderDetailId
|
详细订单编号
|
int
|
主码
|
OrderId
|
订单号
|
varchar(20)
|
not null,
引用tb_order的外码
|
BookId
|
图书编号
|
int
|
not null
|
ordermount
|
订购数量
|
int
|
not null
|
poststatus
|
发货状态
|
varchar(10)
|
not null,默认为未发货,取“未发货”或“已发货”
|
Recevstatus
|
收货状态
|
varchar(10)
|
not null,默认为未收货,取“未收货”或“已收货”
|
sigletotalprice
|
卖出总价
|
money
|
not null
|
(9)图书评价信息表tb_comment
表9
图书评价信息表
列名
|
说明
|
数据类型
|
约束
|
CommentId
|
图书评价编号
|
int
|
主码(自增字段)
|
BookId
|
图书编号
|
int
|
not null,引用tb_bookinfo的外码
|
CustomerId
|
评论客户编号
|
int
|
not null,
引用tb_customerinfo的外码
|
Customername
|
评论客户名
|
varchar(20)
|
not null
|
Commentdate
|
评论时间
|
datetime
|
not null
|
Commentcontent
|
评论内容
|
varchar(100)
|
not null
|
Commentflag
|
审核标志
|
varchar(10)
|
not null
|
(10)信息反馈信息表tb_reply
表10
信息反馈信息表
列名
|
说明
|
数据类型
|
约束
|
ReplyId
|
信息反馈编号
|
int
|
主码(自增字段)
|
ReplyType
|
留言类型
|
varchar(20)
|
not null
|
Replytitle
|
留言主题
|
varchar(20)
|
not null
|
Replycontent
|
留言内容
|
varchar(100)
|
not null
|
CustomerId
|
留言客户编号
|
int
|
not null,
引用tb_customerinfo的外码
|
Customername
|
留言客户名
|
varchar(20)
|
not null
|
Commentdate
|
留言日期
|
datetime
|
not null
|
CustomerIP
|
客户IP
|
varchar(10)
|
not null
|
其中,表5即参数设置信息表是用户配置网站logo、名称、公告等信息的表,它是一个独立于其它表的表。
五、数据库实施
本章节主要包含创建表、添加数据和创建必要的触发器、存储过程等内容。
5.1
创建表
(1)tb_customerinfo客户信息表
(2)tb_booktypeinfo图书类型信息表(3)tb_bookinfo图书信息表(4)tb_manager管理员信息表(5)tb_parameter参数设置信息表(6)shopbook购物车零时订购信息(7)tb_order订单信息表(8)tb_orderdetail订单详细信息表(9)tb_comment图书评价信息表(10)tb_reply信息反馈信息表
5.2
创建约束条件
5.3
添加数据(注意添加的先后次序)
5.4
创建必要触发器
5.4.1定义一个触发器,其基本功能是在tb_bookinfo表中修改库存数量时,检查数量是否小于0,如果是提示库存不足,库存为空。其具体代码如下所示:
5.4.2定义一个触发器,其基本功能是在填写订单和详细订单的时候相应的总价被计算处理填入相应的位置。其具体代码如下所示:
5.5
创建必要存储过程
5.5.1建立存储过程customer_book,功能是客户在网站前台根据客户名称来查询买到的图书详细情况,其实现代码如下所示:
5.5.2建立存储过程admin_book,功能是管理员在网站后台根据客户名称来查询买到的图书详细情况,其实现代码如下所示:
六、总结
通过本次实验使我对数据库有了一个更加全面,更加深入的了解,也可以说是对本学期所学的数据库知识的一个总结,这次实验不像以前一样,只是对数据库某一部分知识的练习巩固,不仅仅是设计几张表,设计几个存储过程,触发器,而是对这些知识的一个整合,是一次综合的练习,使我对设计一个数据库的流程有了一个了解和掌握。
参考文献
[1]
王珊,萨师煊. 数据库系统概论[M].北京:高等教育出版社.2006.5(2010重印).
[2] 白尚旺,党伟超.PowerDesign软件工程技术[M].北京:电子工业出版社.2004.8.
备注:以前帮同学做的数据库系统大作业(在本人的基础上修改的,参考:数据库设计之学生选课系统),不喜勿喷!!!
分享到:
相关推荐
网上书店系统是一个典型的在线购物平台,它涉及到数据库设计的关键元素,包括实体关系(ER)模型、关系模式、数据类型和数据库操作。以下是该系统数据库设计的相关知识点: 1. **实体和实体关系**: - **角色...
本文将详细介绍一份针对大学课程设计的《网上书店管理系统 数据库系统设计》报告,阐述其设计意图、作用范围及需求分析,并深入探讨其软件需求、系统功能模块以及数据库设计的核心内容。 首先,该系统的软件需求...
华科数据库课程实验13——网上书店管理系统数据库设计。压缩文件包括一个sql文件和WORD文档,其中SQL为初步实现的数据库文件;WORD文档描述了需求分析、数据字典、ER图、ER图转换为关系模式以及初步具体实验代码截图...
本项目基于C#和Visual Studio 2010,结合SQL Server 2008数据库,构建了一个完整的网上书店系统。这个系统不仅展示了C#在数据库交互上的强大能力,同时也体现了Web应用程序的设计和实现。 1. **C#与数据库交互**: ...
该网上书店为‘用户’提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为‘管理员’提供了商品管理,用户信息管理,订单管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的...
【网上图书销售系统...通过本次课程设计,学生将深入理解数据库设计原则,掌握ER模型、关系模型的转换,以及SQL语句的编写与优化。同时,还能学习到系统架构设计、前端开发以及如何处理用户交互,全面提升综合技能。
网上书店系统数据库课程设计是一项常见的IT实践项目,旨在让学生深入理解数据库原理并应用到实际系统中。在这个项目中,学生通常需要设计、实现并优化一个用于网上书店的数据库系统。以下是一些关键知识点的详细说明...
书店管理系统数据库设计主要涉及到使用PL/SQL语言对数据库进行规划和构建,以满足书店的日常运营需求。在本文中,我们将详细讨论系统需求、数据库的概念设计、逻辑设计以及数据库的创建。 1. 系统需求分析 书店管理...
网上书店管理系统是一个典型的数据库应用案例,它涉及到许多关键的IT知识点,主要集中在数据库设计、JAVA编程以及系统需求分析这三个方面。下面将详细阐述这些领域的核心概念。 首先,**需求分析**是任何系统开发的...
总的来说,“数据库课程设计网上书店”项目提供了一个全面的学习平台,涵盖了数据库设计的全过程,从理论到实践,从需求分析到系统实现,对提升数据库管理和开发技能大有裨益。通过这个项目,学习者可以深入了解...
网上书店系统通常涉及到用户管理、商品展示、购物车、订单处理等核心功能,这些都是数据库操作的关键。 首先,我们需要理解ASP(Active Server Pages)技术。ASP是微软开发的一种服务器端脚本语言,用于创建动态...
综上所述,网上书店的数据库课程设计是一个全面的实践项目,涵盖了数据库设计的全过程,对于理解和掌握数据库系统有极大的帮助。在实际操作中,还需要不断学习和适应新的技术和最佳实践,以满足日益复杂的业务需求。
【网上书店数据库设计】是指构建一个支持在线图书销售和管理的数据库系统,旨在提供便捷的购书服务。设计包括对数据库的需求分析、创建、基本操作以及高级特性的应用,同时考虑了安全性方面的要求。 在【需求分析】...
2022年新鲜出炉的数据库课程设计,基于Java+MySQL+Redis的书店销售管理系统,包含源码以及论文。
python实现网上书店系统,全部数据库课设要求都实现了,进入之后直接运行operation.py即可,配套数据库也在dbmanager.py中有方法,自己运行即可,效果很好,不过不推荐直接照抄,可以参考思路,因为这个阶段大多数都...
网上书店数据库设计与分析是构建一个高效、稳定且易于维护的在线销售平台的关键步骤。数据库设计涉及多个层面,包括需求分析、概念模型设计、逻辑模型设计以及物理模型设计,确保数据的完整性和一致性。 首先,我们...
总的来说,"C#+SQL数据库开发的网上书店系统"是一个涵盖了软件工程多个领域的实践项目,涉及前端交互、后端逻辑、数据库设计等多个环节,对于学习和提升全栈开发技能具有很高的价值。通过深入研究这个项目,开发者...
网上书店的数据库设计是构建电子商务系统的关键部分,它负责存储、管理和检索与图书销售相关的大量信息。在这个实例中,我们有一个简单的数据库设计方案,包括关系图、Visio设计文档以及实际的数据库文件。以下是对...