ASP课程设计网上购物系统Word文档格式.docx
《ASP课程设计网上购物系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《ASP课程设计网上购物系统Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
商品编号,商品类别,商品名称,商品序列号,生产厂家,包装类型,销售价格,进货价格,商品简介,阅读次数,销售数量,图片上传。
(4)购物车表(Basket):
编号,用户名,商品编号,订购时间,订购数量,销售价格,用户确认,订单号,提交时间,管理员确认。
(5)客户投诉表(Complain):
投诉编号,投诉时间,用户名,订单号,投诉内容,处理结果,处理标志。
(6)用户表(Users):
用户名,用户密码,用户名称,性别,地址,电子邮件系统,移动电话,固定电话。
(7)管理员表(Admin):
用户名,密码,用户姓名。
2数据库概念结构设计(E-R图)
E-R图提供了表示实体型、属性和联系的方法:
■实体型:
用矩形表示,矩形内写明实体名。
■属性:
用椭圆表示,并用无向边将其与相应的实体连接起来。
■联系:
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
n或m:
n)。
那么本系统的E-R图如下:
图2-1网上商品交易系统的E-R图
3数据库逻辑结构设计
3.1数据库表的设计
■公告信息表(Board):
表2-1公告信息表
列名
数据类型
长度
允许空
Id
int
4
no
Title
varchar
50
yes
Content
1000
PostTime
datetime
8
Poster
20
■商品信息表(Goods)
表2-2商品信息表
Typeid
Name
Sn_Number
Producer
Package
SalePrice
float
StorePrice
ReadCount
BuyCount
ImageFile
■商品类别表(GoodsType):
表2-3商品类别表
Type
■管理员表(Admin):
表2-4管理员表
AdminId
PassWd
■用户表(Users):
表2-5Users的结构
列名
长度
UserId
Pwd
UserName
Sex
bit
1
Address
Email
Telephone
100
Mobile
■客户投诉表(Complain):
表2-6客户投诉表
Posttime
datatime
OrderNumber
Result
Flag
■购物车表(Basket):
表2-7Basket的结构
GoodsId
Int
OrderTime
Datetime
OrderCount
Float
UserChecked
Char
10
Varchar
AdminChecked
3.2数据库连接
按照要求建好数据库后,需要建立网站页面和后台服务器的链接,页面名称为ConnDB.asp,以后当需要对数据库进行访问时,只需要用<
!
--#includeFile="
ConnDB.asp"
-->
命令就可以直接调用该程序,连接数据库,提高程序的可读性,同时也提高程序的便捷性,代码如下:
<
%
DimConn
DimConnStr
SetConn=Server.CreateObject("
ADODB.Connection"
)
‘创建一个数据库链接对象Conn,方便以后调用
ConnStr="
DRIVER={SQLServer};
SERVER=(local);
UID=sa;
PWD=sa;
Database=Shop"
‘创建一个数据库的recordset对象,方便以后调用
Conn.OpenConnStr‘打开数据库%>
注意:
后台管理功能只有管理用户才有权限使用,所以在进入这些页面之前,需要判断用户是否是管理用户。
IsAdmin.asp的功能是判断当前用户是否是管理用户,如果不是,则跳转到Login.asp,要求用户登陆;
如果是,则不执行任何操作,直接进入包含它的网页中。
在只有管理用户可以进入的网页,开始都应包含IsAdmin.asp,代码如下:
--#includefile="
isAdmin.asp"
IsAdmin.asp的代码如下:
%
'
从Session变量中读取用户信息
AdminId=Trim(Session("
admin_id"
))
Passwd=Trim(Session("
admin_pwd"
用户名是否为空
IfAdminId<
>
"
"
Then
sql="
Select*FromAdminWhereAdminId='
&
AdminId&
'
AndPassWd='
Passwd&
是否存在此用户名
Setrs=Conn.Execute(sql)
Ifrs.EOFThen
Response.Redirect"
Login.asp"
EndIf
Else
EndIf%>
三、数据库的管理
1数据库的安全
数据库的安全管理通过对用户权限的控制和数据库的备份与还原来实现
■Shop数据库的用户:
■Dbo的用户属性:
2数据完整性设计
(1)给每个表实施主键约束
主键约束、非空值约束:
公告信息表:
公告编号为主键,所以此项非空。
商品:
商品编号为主键,所以此项非空。
购物车:
购物车id为主键,所以此项非空。
客户投诉:
投诉编号为主键,所以此项非空。
用户:
用户ID为主键,此项非空。
管理员表:
管理员ID为主键,此项非空。
(2)实施CHECK约束
用户表中中建立一个检查约束,即用户性别不是‘男’就是‘女’CHECK(性别IN('
男'
'
女'
)。
(3)惟一约束
每个表的主键需定义为惟一性:
如:
对于商品表,因为商品编号是主键,所以建立唯一性;
对于购物车表,因为购物车编号是主键,所以建立唯一性;
对于客户投诉表,因为客户投诉编号是主键,所以建立唯一性;
对于公告信息表,因为公告信息编号是主键,所以建立唯一性。
3数据库的管理与维护
数据库的管理和维护通过asp的后台操作来进行管理和维护。
四、数据库的实施
1网上购物系统模块分析
下面是对该系统其中一个模块的分析设计与实现。
■登陆界面设计
默认管理员账号:
admin密码111111在shop数据库admin表中数据表示如下图:
登陆界面
■基本信息模块实现对数据库的操作
商品类别添加模块对商品类别添加删除修改操作如下图:
单击添加按钮:
添加到商品类别中
■商品管理,模块对商品进行添加删除与修改操作
2主要代码的实现
AdminIndex.asp
../ConnDB.asp"
html>
head>
metaHTTP-EQUIV="
Content-Type"
CONTENT="
text/html;
charset=gb2312"
metaname="
GENERATOR"
content="
MicrosoftFrontPage4.0"
ProgId"
FrontPage.Editor.Document"
title>
网上商城订单管理<
/title>
/head>
framesetcols="
179,*"
framespacing="
0"
border="
frameborder="
<
framename="
contents"
target="
main"
src="
left.asp"
scrolling="
auto"
noresize>
BoardList.asp"
noframes>
bodytopmargin="
leftmargin="
p>
此网页使用了框架,但您的浏览器不支持框架。
/p>
/body>
/noframes>
/frameset>
/html>
数据库连接ConnDB.asp
setconn=server.createobject("
adodb.connection"
)
conn.open"
Driver={SQLServer};
server=(local);
uid=sa;
pwd=sa;
database=shop;
setrs=Server.CreateObject("
ADODB.Recordset"
conn.open("
driver={SQLServer};
pwd=sa"
%>
isAdmin.asp
AndPasswd='
添加商品模块:
GoodsAdd.asp
../conndb.asp"
添加商品<
metahttp-equiv="
linkhref="
../style.css"
rel="
STYLESHEET"
type="
text/css"
ScriptLanguage="
JavaScript"
functionChkFields(){
if(document.myform.typeid.selectedIndex<
0){
alert("
请选择商品类别"
);
returnfalse;
}
if(document.myform.name.value=="
){
请输入商品名称"
if(document.myform.saleprice.value=="
请输入销售价格"
if(document.myform.storeprice.value=="
请输入进货价格"
}
returntrue;
/Script>
bodybgcolor="
#FFFFCC"
formname="
myform"
method="
POST"
action="
GoodsSave.asp?
action=add"
onsubmit="
returnChkFields()"
tableborder="
width="
100%"
cellspacing="
1"
tr>
tdwidth="
商品类别
selectsize="
name="
typeid"
Setrs=Server.CreateObject("
ADODB.RECORDSET"
读取商品类别信息
sql="
SELECT*FROMGoodsTypeORDERBYId"
optionvalue="
/option>
DoWhileNotrs.Eof%>
%=rs("
id"
)%>
type"
rs.MoveNext
Loop
rs.Close
/select>
/td>
/tr>
商品名称
inputtype="
text"
name"
size="
20"
商品编号
number"
生产公司<
producer"
包装型号
package"
销售价格
saleprice"
进货价格
storeprice"
商品介绍<
textarearows="
6"
content"
cols="
56"
暂时没有……<
/textarea>
iframeframeborder="
height="
40"
400"
no"
upload.asp"
>
/iframe>
hidden"
upimage"
align=center>
submit"
value="
提交"
B1"
&
nbsp;
reset"
重写"
B2"
/table>
/form>
商品删除模块
删除商品信息<
body>
Dimids
ids=Request.QueryString("
Select*FromGoodsWhereidIn("
ids&
)"
SetRs=Conn.Execute(sql)
DoWhileNotRs.Eof
删除图片
filename=Server.MapPath("
images\"
Rs("
imageFile"
SetMyFileObject=Server.CreateObject("
Scripting.FileSystemObject"
If(MyFileObject.FileExists(trim(filename)))Then
MyFileObject.DeleteFiletrim(filename)
Rs.MoveNext()
删除商品记录
DeleteFromGoodsWhereidIn("
Conn.Execute(sql)
SetRs=Nothing
Conn.Close()
scriptlanguage="
成功删除!
location.href="
GoodsList.asp?
flag=0"
;
/script>
商品类别管理
GoodsType.asp
商品类别管理<
linkrel="
stylesheet"
href="
/shop/style.css"
functionnewtype(url){
varwth=window.screen.width;
varhth=window.screen.heigth;
varlefth,topth;
if(wth==1024)
{
hth=200;
lefth=212;
wth=600;
topth=135;
elseif(wth==800)
lefth=100;
topth=50;
if(wth==6400)
hth=200
var