小型电商网站的数据库设计论文.docx
《小型电商网站的数据库设计论文.docx》由会员分享,可在线阅读,更多相关《小型电商网站的数据库设计论文.docx(20页珍藏版)》请在冰豆网上搜索。
![小型电商网站的数据库设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/23/2117d22b-dc9d-4576-a8d4-0f097f6fd2e1/2117d22b-dc9d-4576-a8d4-0f097f6fd2e11.gif)
小型电商网站的数据库设计论文
小型电商网站的数据库设计
1前言
2需求分析
电子商城开发背景
定义
目标
需求分析
系统的功能描述
系统总体功能图
系统流程图
数据流图
实体与数据
联系与数据
数据字典
3概念设计
实体图
多个实体间的联系图
总体ER图
4逻辑设计
关系设计
关系优化
约束的说明
基本表
5物理设计
确定数据库的存储结构
确定数据库的存取方法
摘要:
随着计算机网络技术的飞速发展,电子商务业务越来越频繁,数据库技术在电子商务中的作用更加的重要,本文进行了新的经济形势下电商网站的数据库设计。
关键词:
电子商务;数据库技术;WEB;
1前言
现如今,互联网行业的快速发展,使的互联网已日益成为收集提供信息的最佳渠道。
计算机不断的趋于大众化,电子商务也越来越成熟;随着计算机科学的发展,数据库技术在Internet中的应用逐步广泛;随着互联网的普及,建立在Internet上的网上购物系统是电子商务的一种重要形式。
网购已经成了网民很重要的消费手段。
由此购物网站逐渐发展起来,所谓购物网站就是提供网络购物的站点。
足不出户即可购买到你所喜欢的商品。
电子商务被看作是一种现代化的商业和行政作业方法,这种方法改善产品和服务质量、提高服务传递速度,实现跨领域商业活动,满足政府组织、厂商和消费者降低成本的需求,通过计算机网络加快信息交流以支持决策。
电子商务的内涵和外延也在不断充实和扩展。
近年来,世界范围内Internet/Intranet网络环境的基本形成,使得基于Internet环境的系统的设计与开发成为重要方向,特别是B/S结构的应用越来越广泛。
本电子商城网站是建立一个商品销售平台,这个平台是企业发展及走向全球所迫切需要的。
为企业单位搭建一个商品发布、交易的平台,企业将销售商品在此平台发布,由网站相关管理人员管理,这样既能提高企业的销售量,扩大销售范围,同时也能节约企业开办更多实体店的费用,从而节约了大量人力物力,于是本电子商务网站就应运而生了。
2系统分析
开发背景
本电子商城通过搭建B-C模式的网上交易平台来完成商家与客户的商品交易活动,商家可以利用互联网进行商品的信息发布和打开产品的供销渠道,缩短生产和消费之间的时间路径、空间路径和人际路径。
从而加快信息的传递速度,减少企业成本,提高企业的生产效率,增强企业营销竞争力,给销售商带来更多的利润空间。
客户在未登录之前可以浏览商城开放的业务和信息,可以查询商城的商品信息,但是客户如果要购买商品,则必须在本商城注册并登录后方可进行商品交易活动。
当客户注册登录本商城系统时,可以查询或修改个人信息,浏览、查询并购买商品,管理自己的购物车,查询订单,也可享受商城提供的个性化服务以及优惠服务等。
本电子商城同样提供了一定的后台管理功能,商城管理员可以管理客户积分与等级,删除不合法客户;可以管理商品,包括商品信息入库、商品分类管理、商品信息删除、优惠商品信息、商品信息修改、退货单管理等;可以管理订单,包括订单统计、查询历史订单、配送单管理等。
项目名称:
电子商城销售管理系统(ElectronicStoreSystem简称ESS)
定义
系统数据流程图的一些定义
目标
当电子商城的管理人员使用了该销售管理软件后,可以通过计算机完成下面几个方面的管理工作:
商城注册客户管理、商品管理、订单管理。
电子商城销售管理系统ESS用户分为三类:
(1)商家管理员:
此类客户可以取得商城管理员的权限,可以浏览所有客户信息,查找客户,给客户分配合理的权限,删除不合法客户等。
(2)商城游客:
只可以浏览商城开放的业务和信息,不可以进行网上交
也不为该类客户提供个性化服务,该类客户无需注册。
(3)商城正式客户:
必须在商城注册,登录本商城后,这类客户可以浏
览商城开放的业务和信息,进行网上交易,也可享受商城提供的个性化服务以及优惠服务等。
需求分析
系统的功能描述
作为在线购物商城,前台销售系统提供以下功能:
客户信息管理,商品信息管理,购物车管理,订单信息管理。
(1)客户信息管理
①客户必须注册并登录本系统才能进行网上交易活动。
一个客户只能拥有一个注册号(用户名),注册号可由客户根据自己的喜好自行定义,但必须唯一且在6-16位以内,且第一位必为字母C,其他只能由数字组成。
②同一时间内一个注册号不能在多处登录。
客户所填资料必须真实,其中注册号、密码、姓名、性别、地址、邮编为必填资料。
③客户的积分将可以根据客户的订单金额逐次积累,即当客户每购买一元的商品时,则客户积分增加一分.其积分等级分为一钻,二钻,三钻,一钻客户为普通客户,积分为0-499分,不享受任何优惠;二钻客户积分为500-999分以内,所有商品九折优惠;三钻客户积分为1000分以上,所有商品八折优惠.当客户积分达到一定分数后,自动修改为相应等级。
④客户注册成功以后,其注册信息将自动被加入客户表中。
登录系统后,客户可以查询或修改个人信息。
(2)商品信息管理
①客户登录本系统后,可以浏览本商城所展示的商品。
②客户登录本系统后,可以查找自己所需要的商品。
③客户登录本系统后,可以购买自己选中的商品。
(3)购物车管理
当客户想要购买某件商品时,可以将其放入购物车(生成一商品暂存表)我们在购物车设置一个“是否购买”字段(客户可以自己选择,用于确认),一个“商品数量”(客户自己填写)字段,一个商品编号,商品名称,商品单价,商品总额等。
这样客户就可以自己决定购买哪些商品,购买多少,若不想买,可以在购物车中将其删除。
(4)订单信息管理
①客户确认购买购物车中的商品后,提交购物订单,此时将自动生成一张商家配送单,配送单中的商品编号、商品数量、配送单编号等将自动插入配送表中,而客户姓名、地址、邮编、电话则设置为默认值,即客户可以修改其中的信息。
②当客户付款后,将自动生成一张订单明细表。
明细表中包括商品价格与优惠价,同时自动生成一张订单总表,订单时间将自动生成,即系统当前时间;订单号由系统自动生成。
③生成订单后,一天内商家将发出配送单,客户收到商品后,若在一周以内提出退、换货商品且符合退、换货条件(商品存在严重质量问题),则为客户办理退、换货业务,同时修改相应的订单明细表和订单总表并减去客户相应的积分,并生成相应的退货单,退货单包含商品编号,商品名称,商品单价,商品数量,退货日期。
本电子商城的后台管理系统将可以提供客户管理,商品管理,订单统计管理等功能,具体描述如下:
(1)客户管理
①为客户建立一张基本表,用于添加客户个人信息,客户登录后可以维护自己的个人信息,并且在向网站发出订单时将会自动填写自己的联系信息。
②为客户赋予查询或修改个人信息的权利。
(2)商品管理
①若商品接近保质期(3个月),把该商品设为特价商品。
②若商品库存量小于等于100,则提示要添加商品。
③若某种商品已不再销售时,应将该商品信息删除。
④若某种商品价格改变,则修改商品价格。
⑤当商品入库时,会自动将商品按不同的种类分类管理,分类标准为:
商品类别名,生产厂家。
(3)订单统计管理
①统计每种商品年销售总额,并显示销售总额排在前十名的商品以供客户浏览。
②统计商城所有订单的年销售总额,根据销售情况调整营销计划。
③统计每一地区的销售总额。
④统计每个客户年订单总额。
⑤统计商品上个月的销售总额,并显示销售总额排在前十名的商品供客户浏览。
系统总体功能图
根据上节分析的系统功能需求,我们可以得到系统的功能模块,如图所示。
图系统功能图
系统流程图
本商城客户购买商品的系统流程图,如图所示。
图系统流程图
数据流图
本商城的数据流图如图所示。
图数据流图
实体与数据
3概念设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,并采用自底向上的方法.用E-R图表示各实体之间的联系。
实体图
通过需求分析我们得到客户,商品,优惠表和仓库等最基本的实体,画出它们的实体图如下:
(1)客户实体图,如图所示。
图客户实体图
(2)商品实体图,如图所示。
图商品实体图
(3)优惠表实体图,如图所示。
图优惠表实体图
(4)仓库实体图,如图所示。
图仓库实体图
多个实体间的联系图
实体与实体间有多种联系,画出各种实体间的联系图如下:
(1)客户与优惠表间的联系图,如图所示。
图客户与优惠
(2)商品与商品类别间的联系图,如图所示。
图商品与商品类别表联系图
(3)商品与生产厂家之间的联系图,如图所示。
图商品与生产厂家联系图
(4)商品与仓库实体之间的联系图,如图所示。
图商品与仓库联系图
(5)客户与商品实体之间的联系图,如图所示。
图客户与商品联系图
(6)客户与商品退货之间的关系图,如图所示。
图客户与商品退货单联系图
(7)订单与商品配送之间的联系图,如图所示。
图订单与商品配送单联系图
总体ER图
通过以上分ER图,我们得到下面的总ER图,如图所示。
图总ER图
4逻辑设计
本次设计的数据库在SQLServer上实现,将概念结构设计中的E-R图转换成SQLSever支持的关系数据模型。
关系设计
关系设计包括实体转换和联系转换。
(1)实体转换
将每个单独的实体转换为一张单独的表,具体转换如下:
客户:
注册号,密码,地址,注册日期,邮编,电话,性别,姓名
商品:
商品编号,商品名称,商品生产日期,商品保质期,商品单价。
商品类别:
商品类别编号,商品类别名。
生产厂家:
生产厂家编号,生产厂家名。
仓库:
仓库编号,仓库名称。
(2)联系转换
一个实体型转换为关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系有以下几种不同的情况:
①多对多联系转换为一张单独的关系表
商品表:
商品编号,商品名称,商品生产日期,商品保质期,商品单价,库存量,生产厂家编号。
②一对多的联系通过在多表中添加属性来实现
商品表:
商品编号,商品名称,商品生产日期,商品保质期,商品单价,库存量,生产厂家编号,商品类别编号。
客户表:
注册号,密码,地址,注册日期,邮编,电话,性别,姓名,客户积分,客户等级。
订单表:
订单编号,注册号,订单总额,订货日期,配送日期,发票号码,订单状态,商品编号,商品单价,商品折后价,商品数量。
商品退货单:
退货单编号,订单编号,注册号,姓名,配送日期,商品编号,商品数量,退货原因。
③一对一的联系转化为一张单独的关系表
商品暂存表:
购物车编号,注册号,商品编号,商品单价,商品折后价,商品数量,是否购买,商品总金额。
商品配送单:
配送单编号,注册号,商品编号,商品数量,地址,姓名,邮编,电话,配送日期,订单编号。
关系优化
为了减少以上表数据的冗余,将表优化,结果如下:
(1)客户表:
函数依赖集为F1={注册号→(密码,地址,注册日期,邮编,电话,性别,姓名
客户等级,客户积分)}∈2NF
主属性:
注册号
非主属性:
密码,地址,注册日期,邮编,电话,性别,姓名,客户等级,客户积分
主键:
注册号
(2)优惠表:
函数依赖集为F2={客户等级→(优惠率,积分要求)}∈3NF
主属性:
客户等级
非主属性:
优惠率,积分要求
主键:
客户等级
(3)商品表:
函数依赖集为F3={商品编号→(商品名称,商品类别编号,生产厂家编号,商品库存量,商品生产日期,商品保质期,商品单价)}∈3NF
主属性:
商品编号
非主属性:
商品名称,商品类别编号,生产厂家编号,商品库存量,商品生产日期,商品保质期,商品单价
主键:
商品编号
(4)商品类别表:
函数依赖集为F4={商品类别编号→商品类别名}∈3NF
主属性:
商品类别编号
非主属性:
商品类别名
主键:
商品类别编号
(5)生产厂家表:
函数依赖集为F5={生产厂家编号→生产厂家名}∈3NF
主属性:
生产厂家编号
非主属性名:
生产厂家名
主键:
生产厂家编号
(6)订单总表:
函数依赖集为F6={订单编号→(注册号,订单总额,订货日期,发货日期,订单状态,发票号码)}∈3NF
主属性:
订单编号
非主属性:
注册号,订单总额,订货日期,发票号码,发货日期,订单状态。
主键:
订单编号
(7)订单明细表:
函数依赖集为F6={(订单编号,商品编号)→(订货日期,商品单价,商品折后价,商品数量)}∈3NF
主属性:
订单编号,商品编号
非主属性:
订单总额,订货日期,发票号码,发货日期,商品单价,商品折后价,商品数量
主键:
订单编号,商品编号
(8)商品暂存表:
函数依赖集为F8={(购物车编号,商品编号)→(注册号,商品单价,商品折后价,商品数量,是否购买,商品总金额)}∈3NF
主属性:
购物车编号,商品编号
非主属性:
注册号,商品单价,商品折后价,商品数量,是否购买,商品总金额
主键:
购物车编号,商品编号
(9)商品配送单:
函数依赖集为F9={配送单编号→(商品编号,商品数量,地址,姓名,邮编,电话,配送日期)}∈1NF
主属性:
配送单编号
非主属性:
商品编号,注册号,订单编号,商品数量,地址,姓名,邮编,电话,配送日期
主键:
配送单编号,注册号,订单编号
为了方便客户查看自己订购的商品信息,故在配送单中加入商品单价和商品总金额两个非主属性。
(10)商品退货单:
函数依赖集为F10={(退货单编号,注册号,订单编号)→(姓名,配送日期,退货原因,商品编号,商品数量)}∈1NF
主属性:
退货单编号,注册号,订单编号
非主属性:
姓名,配送日期,退货原因,商品编号,商品数量
主键:
退货单编号,注册号
(11)仓库表:
函数依赖集为F11={仓库编号→(仓库名)}∈3NF
主属性:
仓库编号
非主属性:
仓库名
主键:
仓库编号
约束的说明
根据参照完整性,表与表之间有主键、外键、用户自定义约束。
(1)注册号为客户表的主键,且在6-16位以内,且第一位必为字母C,其他只能由数字组成,即同时对注册号设立用户自定义约束。
(2)性别只能为‘m’或’f’,对性别设立用户自定义约束。
(3)客户密码必须在6-12位之间。
(4)客户表中的客户等级应参照优惠表中的客户等级。
(5)优惠表中客户等级为主键。
(6)仓库表中仓库编号为主键。
(7)商品表中商品编号为主键。
(8)商品类别表中商品类别编号为主键。
(9)生产厂家表中生产厂家编号为主键。
(10)商品表中的商品类别编号应参照商品类别表中的类别编号。
(11)商品表中的生产厂家编号应参照生产厂家表中的生产厂家编号。
(12)商品暂存表中购物车编号和商品编号为主键。
(13)商品暂存表中的客户编号应参照客户表中的客户编号。
(14)商品暂存表中的“是否购买”字段默认为“否”,当客户确认购买以后,再将其修改为“是”。
(15)商品暂存表中的商品数量默认为“0”。
(16)订单总表中订单编号为主键。
(17)订单明细表中订单编号和商品编号为主键。
(18)订单明细表中的订单编号应参照订单总表中的订单编号。
(19)订单明细表中的商品编号应参照商品表中的商品编号。
(20)订单总表中的订货日期应早于配送日期。
(21)发票号码必须唯一,建立unique约束。
(22)商品折后价和订单总额均设置默认值为0。
(23)订单状态设置默认值为0。
(24)商品配送单中配送单编号为主键。
(25)商品配送单中的客户信息默认为已注册客户的信息。
(26)商品退货单中退货单编号、注册号、订单编号为主键。
(27)一个客户购买某种商品的数量不能超过该商品的库存量,当客户购买之后,该商品的库存量应自动减少。
(28)当生成订单明细表后,订单总表要自动生成,订单时间由系统自动生成,当修改订单明细表时,订单总表也要做相应的修改。
(29)在生成订单总表后,自动生成商品配送单。
(30)为客户办理退货业务后,应自动生成一张退货单,同时在订单明细表和订单总表中要做相应的修改。
基本表
通过上面的关系转换与关系优化,我们最终得到11张基本表。
(1)客户表(customer表)如表所示。
表客户表
属性名
数据类型
是否为空
含义
是否为主键
cust_id
char(6)
notnull
注册号
primarykey
cust_code
char(12)
notnull
密码
addr
char(40)
notnull
地址
regis_date
getdate()
null
注册日期
zip
char(6)
notnull
邮编
tel_no
char(11)
notnull
电话
sex
char
(2)
notnull
性别
cust_name
Char(8)
notnull
姓名
cust_level
char(8)
notnull
客户等级
cust_sco
int
notnull
客户积分
(2)优惠表(discount表)如表所示。
表优惠表
属性名
数据类型
是否为空
含义
是否为主键
cust_level
char(4)
notnull
客户等级
primarykey
discount
numeric(7,2)
notnull
优惠率
sco_re
char(20)
notnull
积分要求
(3)商品表(product表)如表所示。
表商品表
属性名
数据类型
是否为空
含义
是否为主键
prod_id
char(6)
notnull
商品编号
primarykey
prod_name
char(20)
notnull
商品名称
kind_no
char(6)
notnull
商品类别编号
sup_no
char(6)
notnull
生产厂家编号
storage
int
notnull
商品库存量
pro_date
datetime
notnull
商品生产日期
keep_date
char(6)
notnull
商品保质期
unit_price
numeric(7,2)
notnull
商品单价
supply
int
notnull
供货量
(4)商品类别表(kind表)如表所示。
表商品类别表
属性名
数据类型
是否为空
含义
是否为主键
kind_no
char(6)
notnull
商品类别编号
primarykey
kind_name
char(15)
notnull
商品类别名
(5)生产厂家表(company表)如表所示。
表生产厂家表
属性名
数据类型
是否为空
含义
是否为主键
sup_no
char(6)
notnull
生产厂家编号
primarykey
sup_name
char(30)
notnull
生产厂家名
(6)订单总表(sales表)如表所示。
表订单总表
属性名
数据类型
是否为空
含义
是否为主键
order_no
char(10)
notnull
订单编号
primarykey
cust_id
char(16)
notnull
注册号
tot_amt
numeric(7,2)
null
订单总额
order_date
getdate()
notnull
订货日期
invoice_no
char(15)
notnull
发票号码
order_status
char
(2)
notnull
订单状态
deliv_date
datetime
notnull
配送日期
(7)订单明细表(sale_item表)如表所示。
表订单明细表
属性名
数据类型
是否为空
含义
是否为主键
order_no
char(10)
notnull
订单编号
primarykey
prod_id
char(6)
notnull
商品编号
primarykey
unit_price
numeric(7,2)
notnull
商品单价
dis_price
numeric(7,2)
notnull
商品折后价
qty
int
notnull
商品数量
order_date
datetime
notnull
订货日期
(8)商品暂存表(shopcart表)如表所示。
表商品暂存表
属性名
数据类型
是否为空
含义
是否为主键
shop_no
char(5)
notnull
购物车编号
primarykey
cust_id
char(6)
notnull
注册号
prod_id
char(6)
notnull
商品编号
primarykey
unit_price
numeric(7,2)
notnull
商品单价
dis_price
numeric(7,2)
notnull
商品折后价
qty
int
notnull
商品数量
buy
char(4)
notnull
是否购买
pro_totamt
numeric(7,2)
notnull
商品总金额
(9)商品配送单(delivery表)如表所示。
表商品配送单
属性名
数据类型
是否为空
含义
是否为主键
deliv_no
char(10)
notnull
配送单编号
primarykey
cust_id
char(6)
notnull
注册号
order_no
char(10)
notnull
订单编号
prod_id
char(6)
notnull
商品编号
qty
int
notnull
商品数量
unit_price
numeric(7,2)
notnull
商品单价
tot_amt
numeric(9,2)
notnull
订单总额
zip
char(6)
notnull
邮编
addr
char(40)
notnull
地址
tel_no
char(11)
notnull
电话
deliv_date
getdate()
notnull
配送日期
cust_name
char(8)
notnull
姓名
(10)商品退货表(return表)如表所示。
表商品退货单
属性名
数据类型
是否为空
含义
是否为主键
chan_no
char(10)
notnull
退货单编号
primarykey
cust_id
char(6)
not