数据库课程设计网络购物系统.docx

上传人:b****8 文档编号:9516711 上传时间:2023-02-05 格式:DOCX 页数:14 大小:44.38KB
下载 相关 举报
数据库课程设计网络购物系统.docx_第1页
第1页 / 共14页
数据库课程设计网络购物系统.docx_第2页
第2页 / 共14页
数据库课程设计网络购物系统.docx_第3页
第3页 / 共14页
数据库课程设计网络购物系统.docx_第4页
第4页 / 共14页
数据库课程设计网络购物系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据库课程设计网络购物系统.docx

《数据库课程设计网络购物系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计网络购物系统.docx(14页珍藏版)》请在冰豆网上搜索。

数据库课程设计网络购物系统.docx

数据库课程设计网络购物系统

《数据库课程设计》

学号:

  

姓名:

题目:

 网络购物系统 

 

计算机科学与技术

第一章需求分析

1引言

随着计算机及网络技术的飞速发展,基于互联网的各种应用日益受到了人们的重视,在众多的网络服务中,Web给人耳目一新的感觉,而在这其中,网上购物已经日渐普及,很多人都通过网络来了解各种信息,学生是网上购物一个不可忽略的群体,校园二手交易网站为在校学生提供发布交易信息的平台,网站内容丰富,使用方便,学生可以将自己不用的东西的信息放在网上,也可在网上找到自己需要的东西,物美价廉,达到双赢。

      

校园二手市场具有较大的发展空间与潜力。

本文基于现代二手交易的流程,结合现代的信息技术,通过对系统的结构设计、开发,构建了一个基于B/S结构的,以JSP为开发平台和mysql为数据库的二手交易系统。

校园二手交易网站围绕信息的发布、搜索、分类、处理这个中心,以用户为立足点,以方便用户获取信息和交易为目的来组织业务流程。

  

大学生有很多二手物品,自己已经不用了,扔掉又很可惜。

比如一些用过的书籍运动产品。

例如羽毛球拍、足球、篮球等。

这些物品还能用但是因为某些原因主人想要出手。

另一方面,这类产品因为价格因素在学校中还是很有市场的。

此系统就是要建立这样一个平台方便大家将自己的二手物品放在网上出售,也方便同学在网上选购自己喜欢的二手物品。

2需求分析阶段的目标与任务

2.1处理对象

超级管理员:

编号,账号,密码,手机号

管理员:

编号,账号,密码,手机号

用户:

编号,账号,密码,邮箱,QQ号,手机号

商品:

编号,类别,名称,商品描述,价格,剩余数量,物主的编号

评论:

编号,评论者,内容,评论日期,物品的编号

订单:

编号,所有者,购买者,商品的编号,交易的状态

2.2处理功能及要求

1.能够存储大量的商品信息,并方便有效的管理,这主要包括:

1)商品信息的录入、删除及修改

2)商品信息的检索查询

3)商品订单信息的状态更新

2.能够对一定数量的用户、管理员进行相应的信息的修改,这主要包括:

1)用户信息的登记、删除及修改

2)管理员信息的增加、删除及修改

3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。

4.对查询结果、统计的结果能够列表显示

2.3.安全性和完整性要求

1)安全性要求

系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面,通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。

2)完整性要求

系统完整性要求系统中数据的正确性。

包括,用户自定义完整性等,可通过建立主、外键,使用check约束,或者通过使用触发器和存储过程。

从而实现完整性,一致性。

第二章概念设计阶段

1E-R模型

2数据库表

用户表user

字段

名称

数据类型

约束

Yid

用户编号

int

主键

Yname

账号

nvarchar(10)

Ypassword

密码

nvarchar(10)

联系表ralation

字段

名称

数据类型

约束

Lid

用户编号id(引用)

int

外键

Lmail

邮箱地址

nvarchar(20)

Lphone

电话号码

nvarchar(20)

Lqq

用户的QQ

int

管理员表manager

字段

名称

数据类型

约束

Gid

管理员id

int

主键

Gname

管理员账号

nvarchar(10)

Gpassword

管理员密码

nvarchar(10)

Gphone

管理员手机

nvarchar(20)

超级管理员表superadm

字段

名称

数据类型

约束

Aid

超级管理员id

int

主键

Aname

超级管理员账号

nvarchar(10)

Apassword

超级管理员密码

nvarchar(10)

Aphone

超级管理员手机

nvarchar(20)

 

商品表commodity

字段

名称

数据类型

约束

Sid

商品的id

int

主键

goodsname

分类的id(引用分类表的)

int

外键

Sname

物品的名称

nvarchar(20)

dscription

商品的描述

text

price

价格

float

Scount

剩余数量

int

isownId

物主id(用户id)

int

外键

商品分类表commodityClass

字段

名称

数据类型

约束

Fid

分类id(被引用)

int

主键

Fname

类别

nvarchar

图片表pic

字段

名称

数据类型

约束

Tid

图片的id

int

主键

Image

二进制图片流

longblob

picId

所属物品的id(被引用)

int

外键

评论表discuss

字段

名称

数据类型

约束

Pid

评论的id(自动)

int

主键

autorname

评注者

nvarchar(10)

content

内容

text

Pdate

评论日期

date

goodsid

物品的id

int

外键

订单表ordertable

字段

名称

数据类型

约束

Did

订单的id

int

主键

ownid

所有者的id

int

外键

saleid

购买者的id

int

外键

goodsid

商品的id

int

外键

Dstate

交易的状态

int

第三章逻辑设计阶段

1逻辑设计的任务和目标

以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。

具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。

2数据组织

2.1将E-R图转换为关系模型

实体型转换为关系模式。

实体的属性就是关系的属性,实体的码就是关系的码。

对于实体间的联系则有以下不同的情况:

一个m:

n联系转换为一个关系模式。

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

一个1:

n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:

1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

三个或三个以上实体间的一个多元联系可以转换为一个关系模式。

与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

第四章物理结构设计

1物理设计阶段的目标与任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:

(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;

(2)对物理结构进行评价,评价的重点是时间和空间效率。

2系统功能模块

2.1用户基本信息的查询和更新模块

2.2商品基本信息的查询和更新模块

第五章数据库实施阶段

1建立数据库、数据表、存储过程、触发器

1.1建立数据库

1.2建立数据表

1.2.1用户表的建立

1.2.2联系表的建立

1.2.3管理员表的建立

1.2.4超级管理员表的建立

1.2.5商品表的建立

1.2.6商品分类表的建立

1.2.7图片表的建立

1.2.8评论表的建立

1.2.9订单表的建立

1.3建立触发器

1.3.1当删除user表中的数据时,触发删除商品表和联系表里的数据

1.3.2当删除commodity表中的数据时,删除评论表和图片表里对应的数据

1.4创建各个功能的存储过程

1.4.1user表

delimiter||

createprocedureIusr(Inamenvarchar(10),Ipasswordnvarchar(10),

Imailnvarchar(20),Iphonenvarchar(20),Iqqint)

begin

insertintouser(Yname,Ypassword)values(Iname,Ipassword);

set@Iid=(selectYidfromuserwhereYid=@@IDENTITY);--这里动态获取最新的插入值

select@Iid;

insertintoralation(Lid,Lmail,Lphone,Lqq)values(@Iid,Imail,Iphone,Iqq);

end||

delimiter;

callIusr('ceishi',123456,'kmkk@.com','12382252',1315646);

1.4.2commodity表

delimiter||

createprocedureIcommodity(cidint,Inamenvarchar(20),Idescriptiontext,

Ipricefloat,Iscountint,Iisownidint,Ipiclongblob)

begin

insertintocommodity(goodsname,Sname,dscription,price,Scount,isownId)

values(cid,Iname,Idescription,Iprice,Iscount,Iisownid);

set@pid=(selectSidfromcommoditywhereSid=@@IDENTITY);

insertintopic(Imgae,picId)values(Ipic,@pid);

end||

delimiter;

callIcommodity(1,'鼠标','verygood',19.5,10,5,'000000011111');

第六章系统的调试和测试

对该商品购物管系统进行测试,验证每个功能是否符合要求,具体的测试如下:

(1)检测各个存储过程的功能:

(见附页)

(2)检测各个触发器的功能:

(见附页)

第七章总结

这次历时两周的课程设计,对于我们来说收获不少。

第一天查找资料、了解有关的知识。

了解网络购物系统系统的需求,做好需求分析后,开始系统的设计,画出E-R图,写出各个实体的属性。

对于数据库的创建,虽然出现很多的问题,但经过和同学们探讨之后我们都能够很好的解决,这便让我们体会到上课专心听讲的重要性。

对于所需表的创建是一个比较简单的内容,问题主要是存储过程和触发器的创建,但经过查资料之后解决了问题。

附页1:

createtableuser(

Yidintprimarykeyauto_increment,

Ynamenvarchar(10)notnull,

Ypasswordnvarchar(10)

);

createtableralation(

Lidintnotnull,

Lmainnvarchar(20)notnull,

Lphonenvarchar(20)notnull,

Lqqint,

constraintfk_r_Lidforeignkey(Lid)referencesuser(Yid)

);

createtablemanager(

Gidintprimarykeyauto_increment,

Gnamenvarchar(10)notnull,

Gpasswordnvarchar(10)notnull,

Gphonenvarchar(20)notnull

);

createtablesuperadm(

Aidintprimarykeyauto_increment,

Anamenvarchar(10),

Apasswordnvarchar(10),

Aphonenvarchar(20)

);

createtablecommodityClass(

Fidintprimarykeyauto_increment,

Fnamenvarchar(10)

);

createtablecommodity(

Sidintprimarykeyauto_increment,

goodsnameintnotnull,

Snamenvarchar(20),

dscriptiontext,

priceintnotnull,

Scountintnotnull,

isownIdintnotnull,

constraintfk_c_goodforeignkey(goodsname)referencescommodityClass(Fid),

constraintfk_c_isoforeignkey(isownId)referencesuser(Yid)

);

createtablepic(

Tidintprimarykeyauto_increment,

Imgaelongblob,

picIdintnotnull,

constraintfk_p_picforeignkey(picId)referencescommodity(Sid)

);

createtablediscuss(

Pidintprimarykeyauto_increment,

autornamenvarchar(10),

contenttextnotnull,

Pdatedatetimenotnull,

goodsidintnotnull,

constraintfk_d_disforeignkey(goodsid)referencescommodity(Sid)

);

createtableordertable(

Didintprimarykeyauto_increment,

ownidintnotnull,

saleidintnotnull,

goodsidintnotnull,

Dstateint,

constraintfk_o_ownforeignkey(ownid)referencesuser(Yid),

constraintfk_o_salforeignkey(saleid)referencesuser(Yid),

constraintfk_o_goodsforeignkey(goodsid)referencescommodity(Sid)

);

创建触发器

--用户触发器

delimiter||

droptriggerifexistsdeleteuser||

createtriggerdeleteuserbeforedeleteonuser

foreachrow

begin

deletefromcommoditywherecommodity.isownId=old.Yid;

deletefromralationwhereralation.Lid=old.Yid;

/*deletefromralationwhereLid=4;*/

end||

delimiter;

--物品的触发器

droptriggerdeletesc;

delimiter||

droptriggerifexistsdeletesc||

createtriggerdeletescbeforedeleteoncommodity

foreachrow

begin

deletefrompicwherepic.picId=old.Sid;

deletefromdiscusswherediscuss.goodsid=old.Sid;

end||

delimiter;

--商品数量的触发器

droptriggerC_order;

delimiter||

droptriggerifexistsC_order||

createtriggerC_orderafterinsertonordertable

foreachrow

begin

updatemoditysetScount=Scount-1WHEREcommodity.Sid=new.goodsid;

end||

delimiter;

insertintoordertable(ownid,saleid,goodsid,Dstate,Odate)values(2,3,9,1,now())

--插入管理员

Insertintomanager

(Gname,Gpassword,Gphone)values('ad','admin','123456789');

Insertintosuperadm

(Aname,Apassword,Aphone)values('admin','admin','123456789');

--插入用户

callIusr('ceishi',123456,'kmkk@.com','12382252',1315646);

--插入物品

callIcommodity(1,'鼠标','verygood',19.5,10,5,'000000011111');

--评论表

insertintodiscuss(autorname,content,Pdate,goodsid)values('mk','thisistoobad',now(),'7');

insertintodiscuss(autorname,content,Pdate,goodsid)values('mk','thisistoogood',now(),'8');

--插入订单表

insertintoordertable(ownid,saleid,goodsid,Dstate,Odate)values(2,3,9,1,now());

查询语句

-user用户的显示

selectYid,Yname,Ypassword,Lmail,Lphone,Lqqfromuser,ralationwhereuser.Yid=ralation.Lid;

--商品表的显示

SelectSid,goodsname,Sname,dscription,price,Scount,

isownId,Fname,Tid,Imgaefromcommodity,commodityClass,picwhereSid=picIdandgoodsname=Fid;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1