网上购书数据库设计解析.docx
- 文档编号:10953217
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:47
- 大小:1.07MB
网上购书数据库设计解析.docx
《网上购书数据库设计解析.docx》由会员分享,可在线阅读,更多相关《网上购书数据库设计解析.docx(47页珍藏版)》请在冰豆网上搜索。
网上购书数据库设计解析
数据库系统课程设计报告
题目:
网上购书系统
课程代号:
0680036
课程名称:
数据库系统课程设计
学号:
xxxx
姓名:
XXX
班级:
XXX
指导教师:
XXX
完成日期:
2010年12月
一、引言
1、背景
随着近年来电子商务的风起云涌,网上购物已然成为人们生活中的一部分,而且已经成为经济发展的一种形式。
本系统目的在于开发一个网上购书系统,一方面让消费者方便的买到自己所需要的书籍,另一方面帮助企业实现最大经济利益。
2、开发及运行的软硬件环境
硬件:
Windowsxp操作系统
256M内存以上
软件:
开发工具:
编译环境:
JDK6.0
服务器:
Tomcat6.0
数据库:
MySQL5.1
集成开发工具:
MyEclipse8.0
浏览器:
IE6或更高版本
二、需求分析:
本网上订书系统的具体功能需求如下:
顾客可以方便地注册与登录;
顾客可以灵活地检索所需的商品信息及了解特价商品信息及了解特价商品信息;
顾客可以方便地查看详细的商品资料;
顾客可以方便地管理自己的购物车(添加或删除选购商品、修改购买及在线下订单等操作);
顾客可以反馈自己的意见或留言;
商品管理员可以方便地管理商品及特价商品信息(新增、删除、修改商品及特价商品);
订单管理员可以方便地查看订单、发货与缺货处理;
会员管理员可以方便地查看顾客的反馈信息及具体的处理情况;
系统管理员可以方便地进行系统用户管理(新增、删除、修改系统用户)。
三、总体设计
网上订书系统的总流程图:
系统用户管理
四、数据库设计
1、概念设计(E-R图):
会员级别表
系统用户表
商品类别表
ID号int
级别名称:
varchar
优惠百分比:
int
ID号int
管理员类型:
varchar
管理员真实姓名:
text
登陆账号:
char(12)
登陆密码:
char(12)
ID号int
类别名称:
varchar
类别描述:
text
1
11
属于
回复
属于
属于n
会员注册表
ID号int
会员级别ID:
int
登陆账号:
char(12);
登陆密码:
char(12)
真实姓名:
char(12)
联系电话:
char(12)
联系地址:
varchar(100);
邮政编码:
char(12)
注册日期:
datetime
最近登录日期:
datetime
登陆次数:
int
电子信箱:
varchar(100)
n
购物车商品选购表
商品表
ID号int;
商品类别IDint
商品价格decimal(8,2);
商品特价decimal(8,2);
商品型号:
varchar(40);
商品图片:
varchar(40);
商品描述:
text;
生产厂家:
varchar(40);
出厂日期:
datetime
有无特价:
int
购物车IDint
商品ID:
varchar(40)
商品数量:
int
商品价格:
decimal(8,2);
金额:
decimal(9,2);
1n
存放
1
拥有
留言表
n
ID号int
会员ID:
int
管理员ID:
int
留言标题:
varchar(60)
留言内容:
text
留言日期:
datetime
回复内容:
text
回复日期:
datetime
对应
ID号int
会员ID:
int
购物车ID:
int
订单编号:
varchar(20)
订单日期:
datetime;
订单状态:
int
订单表
ID号int
会员ID:
int
总金额:
decimal(8,2)
购物车状态:
int
购物车表
1n1nn
11
2、逻辑设计(由E-R图可得如下关系表):
会员级别表MemberLevel
字段名称
数据类型
主键
自增
允许为空
描述
ID
Int
是
增1
ID号
LevelName
Char(20)
√
级别名称
Favourable
int
√
优惠百分比
注册会员表Member
字段名称
数据类型
主键
自增
允许为空
描述
ID
int
是
增1
ID号
Memberlevel
int
外码
会员级别ID
LoginName
Char(12)
√
登陆账号
LoginPwd
Char(12)
√
登录密码
MemberName
Char(20)
√
真实姓名
Phone
Char(15)
√
电话
Address
Varcher(100)
√
地址
Zip
Char(10)
√
邮编
RegDate
datetime
√
登录日期
LastDate
datetime
√
最近登录时间
LoginTimes
int
√
登陆次数
Varchar(100)
√
电子邮件
商品类别Category
字段名称
数据类型
主键
自增
允许为空
描述
ID
Int
是
增1
ID号
CateName
varchar(40)
√
级别名称
CateDesc
text
√
优惠百分比
商品表Merchandise
字段名称
数据类型
主键
自增
允许为空
描述
ID
Int
是
增1
ID号
Category
Int
外码
商品类表ID
MerName
Varchar(40)
√
商品名称
Price
Decimal(8,2)
√
商品价格
Sprice
Decimal(8,2)
√
商品特价
MerModel
Varchar(40)
√
商品型号
Picture
Varchar(100)
√
商品图片
MerDec
Text
√
商品描述
Manufacturer
Varchar(60)
√
生产商
LeaveFacoryDate
Datetime
√
出厂日期
Special
int
√
是否有特价(0:
有,1:
无)
购物车商品选购表CartSelectMer
字段名称
数据类型
主键
自增
允许为空
描述
ID
Int
是
增1
ID号
Cart
Int
外码
购物车ID
Merchandise
Int
外码
商品ID
Number
Int
√
商品数量
Price
Decimal(8,2)
√
商品价格
Money
Decimal(9,2)
√
金额
购物车Cart
字段名称
数据类型
主键
自增
允许为空
描述
ID
int
是
增1
ID号
Member
int
外码
会员ID
Money
Decimal(9,2)
√
总金额
CartStatus
int
√
购物车状态
订单表Orders
字段名称
数据类型
主键
自增
允许为空
描述
ID
int
是
增1
ID号
Member
int
外码
会员ID
Cart
int
外码
购物车ID
orderNO
Varchar(20)
√
订单编号
orderDate
datetime
√
订单日期
OrderStatus
int
√
订单状态
留言表LeaveWord
字段名称
数据类型
主键
自增
允许为空
描述
ID
int
是
增1
ID号
Member
int
外码
会员ID
Admin
int
外码
管理员ID
Title
Varchar(60)
√
留言标题
Content
text
√
留言内容
LeaveDate
datetime
√
留言日期
AnswerContent
text
√
回复内容
AnswerDate
datetime
√
回复日期
系统用户表Admin
字段名称
数据类型
主键
自增
允许为空
描述
ID
Int
是
增1
ID号
AdminType
Int
√
管理员类型ID
AdminName
Char(12)
√
管理员类型
LoginNme
Char(12)
√
管理员登录名
LoginPwd
Char(12)
√
管理员登录密码
注:
1、各个关系表的规范性分析:
由于在该系统中,为了更好地结合实际,满足系统需要,每个表均有一个自动增长的代理主键,这就能保证设计出的每一个表都符合BCNF,例如:
在会员级别表MemberLevel中,会员ID为主键,存在函数依赖ID--->LevelName,ID--->Favourable,每一个非主属性既不部分依赖于码,又不传递依赖于码,而且决定因素中都包含码,故MemberLevel∈BCNF.
同理可得,注册会员Member、商品类别Category、商品表Merchandise、购物车商品选购表CartSelectMer、购物车Cart、订单表Orders、留言表LeaveWord、系统用户表Admin均为BNCF。
2、各表建立的SQL语句:
DROPDATABASEIFEXISTS`db_eshop`;
CREATEDATABASE`db_eshop`;
USE`db_eshop`;
CREATETABLEadmin(
IDint(4)NOTNULLauto_increment,
AdminTypeint(4)defaultNULL,
AdminNamechar(12)defaultNULL,
LoginNamechar(12)defaultNULL,
LoginPwdchar(12)defaultNULL,
PRIMARYKEY(ID)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
INSERTINTOadmin(ID,AdminType,AdminName,LoginName,LoginPwd)VALUES(1,1,'商品管理员','Admin1','Admin1');
INSERTINTOadmin(ID,AdminType,AdminName,LoginName,LoginPwd)VALUES(2,2,'订单管理员','Admin2','Admin2');
INSERTINTOadmin(ID,AdminType,AdminName,LoginName,LoginPwd)VALUES(3,3,'会员管理员','Admin3','Admin3');
INSERTINTOadmin(ID,AdminType,AdminName,LoginName,LoginPwd)VALUES(4,4,'系统管理员','Admin4','Admin4');
CREATETABLEcart(
IDint(4)NOTNULLauto_increment,
Memberint(4)NOTNULL,
Moneydecimal(9,2)defaultNULL,
CartStatusint(4)defaultNULL,
PRIMARYKEY(ID),
foreignkeymember(ID)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEcartselectedmer(
IDint(4)NOTNULLauto_increment,
Cartint(4)NOTNULL,
Merchandiseint(4)NOTNULL,
Numberint(4)NOTNULLdefault1,
Pricedecimal(8,2)NOTNULLdefault0.00,
Moneydecimal(9,2)NOTNULLdefault0.00,
PRIMARYKEY(ID)
foreignkeycart(ID)
onupdatecascade
ondeletecascade,
foreignkeymerchandise(ID)
onupdatecascade
ondeletecascade,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEcategory(
IDint(4)NOTNULLauto_increment,
CateNamechar(40)defaultNULL,
CateDesctext,
PRIMARYKEY(ID)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEleaveword(
IDint(4)NOTNULLauto_increment,
Memberint(4)NOTNULL,
Adminint(4)defaultNULL,
Titlechar(60)defaultNULL,
Contenttext,
LeaveDatedatetimedefaultNULL,
AnswerContenttext,
AnswerDatedatetimedefaultNULL,
PRIMARYKEY(ID),
foreignkeyadmin(ID)
onupdatecascade
ondeletecascade,
foreignkeymember(ID)
onupdatecascade
ondeletecascade,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEmember(
IDint(4)NOTNULLauto_increment,
Memberlevelint(4)NOTNULL,
LoginNamechar(12)defaultNULL,
LoginPwdchar(12)defaultNULL,
MemberNamechar(20)defaultNULL,
Phonechar(15)defaultNULL,
Addressvarchar(100)defaultNULL,
Zipchar(10)defaultNULL,
RegDatedatetimedefaultNULL,
LastDatedatetimedefaultNULL,
LoginTimesint(4)defaultNULL,
EMailvarchar(100)defaultNULL,
PRIMARYKEY(ID),
foreignkeymemberlevel(ID)
onupdatecascade,
ondeletecascade
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEmemberlevel(
IDint(4)NOTNULLauto_increment,
LevelNamechar(20)defaultNULL,
Favourableint(4)defaultNULL,
PRIMARYKEY(ID)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEmerchandise(
IDint(4)NOTNULLauto_increment,
Categoryint(4)NOTNULL,
MerNamechar(40)defaultNULL,
Pricedecimal(8,2)defaultNULL,
SPricedecimal(8,2)defaultNULL,
MerModelchar(40)defaultNULL,
Picturevarchar(100)defaultNULL,
MerDesctext,
Manufacturerchar(60)defaultNULL,
LeaveFactoryDatedatetimedefaultNULL,
Specialint(4)defaultNULL,
PRIMARYKEY(ID),
foreignkeycategory(ID)
onupdatecascade,
ondeletecascade
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
CREATETABLEorders(
IDint(4)NOTNULLauto_increment,
Memberint(4)NOTNULL,
Cartint(4)NOTNULL,
OrderNOchar(20)defaultNULL,
OrderDatedatetimedefaultNULL,
OrderStatusint(4)defaultNULL,
PRIMARYKEY(ID)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
INSERTINTOmemberlevel(ID,LevelName,Favourable)VALUES(1,'A',95);
INSERTINTOmemberlevel(ID,LevelName,Favourable)VALUES(2,'B',90);
INSERTINTOmemberlevel(ID,LevelName,Favourable)VALUES(3,'C',85);
INSERTINTOmemberlevel(ID,LevelName,Favourable)VALUES(4,'D',80);
五、程序模块设计
●顾客注册登录模块功能需求:
说明:
没注册或登录的顾客只能浏览商品,不能购买或留言等;注册成功的用户登陆后才能进行购物车管理或留言反馈操作。
顾客
填写注册基本信息
输入会员账号及密码登录
注册信息有效验证
会员登录验证
有效?
无效并重填
成功?
完成注册信息
有效
登录失败
●顾客登录、注册模块程序代码设计与分析:
反馈提示信息
提交
MemberAction的
reg方法
提交
会员表单Bean
MemberForm
会员注册
reg.jsp
LoginrAction的
login方法
反馈提示信息
●界面设计及演示效果如下图示:
●商品检索、浏览模块需求分析:
商品种类列表显示
输入关键字进行检索
选择具体的商品种类
分页显示商品信息,包括商品名称、商品图片、型号、价格、生产厂商、生产日期等
说明:
●特价商品检索、浏览模块功能需求:
分页显示特价商品信息,包括商品名称、商品图片、型号、价格、生产厂商、生产日期等
特价商品种类列表显示
输入关键字进行检索
选择具体的商品种类
●商品及特价商品检索浏览模块程序代码设计与分析:
返回
●商品及特价商品检索浏览模块界面设计与效果演示:
●购物车模块功能需求:
输入账号、密码后登录
修改购物车中商品数量
删除购物车中的商品
下订单
查看订单
将商品放入购物车中
查看购物车中商品
●购物车模块程序代码设计与分析:
返回
●购物车模块界面设计与效果演示:
●顾客反馈留言模块功能需求:
提
交
反
馈
信
息
或
留
言
?
?
填写反馈信息或留言
无效后充填
有效
●顾客反馈留言模块程序代码设计与分析:
返回
●顾客反馈留言模块界面设计与效果演示:
●后台登录模块需求分析:
输入管理员账号、密码
失败,重新登录
?
?
进入系统管理
进入会员管理模块
进入订单管理模块
进入商品管理模块
商品管理员订单管理员会员管理员系统管理员
●后台登录模块程序代码设计与分析:
登陆成功
●后台登录模块界面设计与效果演示:
●商品管理模块需求分析:
商品管理员登录
输入关键字查询或选择商品种类获取商品列表
商品种类列表
删除商品
修改商品
新增商品
删除商品种类
修改商品种类
新增商品种类
●特价商品管理模块功能需求:
商品管理员登录
输入关键字查询或选择商品种类获取特价商品列表
商品种类列表
删除特价商品
修改特价商品
新增特价商品
删除商品种类
修改商品种类
新增商品种类
●商品及特价管理模块程序代码设计与分析:
提交
●商品及特价管理模块界面设计与效果演示:
●订单管理模块功能需求:
删除订单中的商品
查看订单的详情
修改订单的完成状态
修改订单中的商品及数量
删除订单
根据日期范围、订单的状态
及订单编号得到订单列表
进入订单管理模块
●订单管理模块程序代码设计与分析:
订单管理员
●订单管理模块界面设计与效果演示:
●会员管理模块功能需求:
查看留言
删除留言
回复留言
根据留言时间范围、回复状态、会员ID取得留言列表
删除会员
浏览会员详细资料
修改会员级别
根据注册时间范围、会员级别、会员ID取得会员列表
进入会员管理模块
●会员管理模块程序代码设计与分析:
调用
●会员管理模块界面设计与效果演示:
●系统管理模块功能需求:
删除用户
修改用户
新增用户
查看用户详细资料
系统用户列表
进入系统管理模块
●系统管理模块程序代码设计与分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 购书 数据库 设计 解析