在B2C中构造数据库应用
施吉鸣
摘要:本文提出了B2C电子商务中在Web服务器端装载MS
Access数据库,同时结合ASP技术访问数据库的设计方案,并给出了网上购物系统的基本框架和功能。
一、B2C概念
电子商务是指两方或多方通过计算机和某种形式的计算机网络(直接连接的网络或Internet等等)进行商务活动的过程。它包括企业和企业之间的商务活动、网上的零售业和金融企业的数字化处理过程。按照交易主体划分,电子商务的经营模式可以划分为两种:一种是企业对企业的电子商务,即B2B;另外一种是企业对消费者的电子商务,即B2C。
二、数据库设计方案
B2C通过WEB技术将产品、服务和信息销售给顾客。B2C的典型例子是网上购物,网上购物从前台看是一种特殊的WEB服务器。现代WEB网站的多媒体支持和良好的交互性功能成为建立这种虚拟商店的基础,使得顾客可以象在真实的超级市场一样推着购物车挑选商品,并最后在付款台结帐。这也就构成网上购物软件的三大支柱:商品目录、顾客购物车和付款台。好的商品目录可以使顾客通过最简单的方式找到其需要的商品,并可以通过文字说明、图象显示、客户评论等充分了解产品各种信息;商品购物车则衔接商店和个人,客户既可以把他喜欢的商品一个个放到购物车里,也可以从购物车中取出,直到最后付款。
网上购物软件设计的过程中需要涉及数据库技术的应用。本文通过在Web服务器端装载MS Access数据库,同时结合ASP技术访问数据库的设计方案,实现了网上购物系统的基本功能。其实包括数据查询,数据录入以及网上购物系统都可以用Script Run At Server Side(运行在主机端的程序脚本)来实现。包含有关数据库查询的页面,需要涉及ADO(一种类似DAO或RDO的数据库访问对象)。
三、网上购物系统的基本框架和功能
系统由7个asp页面和1个access数据库组成,分别是index.asp、buy.asp、check.asp、add.asp、clear.asp、nothing.asp、util.asp和shopping.mdb,这8个文件组成网上购物系统的基本框架;实现的功能可由下图所示:
数据库shopping.mdb中包括有category和products两个表,结构如下:
表category
|
CategoryID |
Description |
|
1 |
书刊杂志 |
|
2 |
家用电器 |
|
3 |
通讯器材 |
|
4 |
化妆品 |
|
5 |
服装服饰 |
|
6 |
医疗保健 |
表products
|
CategoryID |
ProductID |
ProductName |
Price |
Description |
|
1 |
Book01 |
妈妈宝宝 |
48 |
针对最有品味的城市准妈妈和新手妈妈读者 |
|
1 |
Book02 |
中国时装 |
45 |
《中国时装》是一本好书 |
|
1 |
Book03 |
大众机械师 |
72 |
集生活技能于一体的硬性现代男性杂志 |
|
1 |
Book04 |
新现代画报 |
300 |
内容多元化信息快捷,消费及娱乐情报 |
|
1 |
Book05 |
亚洲女友 |
54 |
标榜亚洲时尚风格之女性刊物 |
|
3 |
Comm01 |
诺基亚7110手机 |
1520 |
十大热门商品之一 |
|
3 |
Comm02 |
爱立信T28sc手机 |
1000 |
铁灰 |
|
3 |
Comm03 |
摩托罗拉P7689手机 |
990 |
冰河蓝 |
|
3 |
Comm04 |
诺基亚3310手机 |
850 |
十大热门商品之一 |
|
3 |
Comm05 |
飞利浦989手机 |
980 |
深灰 |
|
3 |
Comm06 |
TCL美之声无绳电话 |
410 |
HW868
P/TSD(LCD)无绳来电显示电话 |
|
2 |
Elect01 |
JNC
MP3播放器 |
1990 |
SSF-881
T3,功能最全,外表最炫! |
|
2 |
Elect02 |
柯达 DC4800 数码相机 |
8360 |
柯达DC4800(16M) |
|
2 |
Elect03 |
索尼摄像机 TRV320E套餐A |
8055 |
实惠的价格,齐全的附件 |
|
2 |
Elect04 |
索尼MD机 |
2998 |
R91,完美音质,真实再现 |
|
2 |
Elect05 |
富士数码相机 |
7260 |
FinePix4900
16M,瞬间感觉,真实再现 |
|
2 |
Elect06 |
爱华可视VCD机 |
4880 |
KM88,迷你可视,移动电影院 |
|
2 |
Elect07 |
空气净化器
KJ180-TGS |
788 |
适用30-45平方米,风速三档调节 |
|
2 |
Elect08 |
卡西欧数码相机 QV-3000EX |
5940 |
华美自然色彩,仅在按动的瞬间 |
|
5 |
Fashion01 |
宜而爽防螨抗寒绒保暖女内衣 |
238 |
上下层采精梳面料,柔软舒适 |
|
5 |
Fashion02 |
爱慕Beauty Bra蕾丝花边内裤系列 |
80 |
KC251B-L(浅杏黄) |
|
5 |
Fashion03 |
欣蒂蕾丝性感内衣 H-7204 |
100 |
弹性奇佳闪闪发光,具有舒适塑身效果 |
|
6 |
Health01 |
朵而胶囊 |
78 |
益气滋阴,补血养颜 |
|
4 |
Makeup01 |
曼秀雷敦变色什果冰润唇膏 |
60 |
既是口红,更是润唇膏,还能防晒 |
|
4 |
Makeup02 |
娇韵诗身体深层磨砂膏 |
390 |
深层清洁、活化肌肤 |
|
4 |
Makeup03 |
伊莉莎伯·雅顿紧肤乳液 |
510 |
功能全面,能帮您的肌肤抵挡岁月侵袭 |
|
4 |
Makeup04 |
欧洲之萃造物女神众望II香水 |
168 |
释放令人兴奋的诱惑,全属女性的柔情 |
进入系统主页时,index.asp从shopping库中读取category表,显示各类购物区的名称用于导购,在进入指定购物区后,buy.asp从shopping库中读取products表,显示购物区中各种物品的名称,这时您就可以随心所欲地购物了。
下面给出index.asp和buy.asp的源代码:
index.asp:
<%
Const Head="网上购物超市"
DbPath = SERVER.MapPath("Shopping.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DbPath
Set rs=conn.Execute( "Category" )
%>
<HTML>
<HEAD><TITLE><%=Head%></TITLE></HEAD>
<BODY BACKGROUND="nabkgnd.jpg">
<H1 ALIGN=CENTER><%=Head%><HR></H1>
<H2>进入购物区:</H2>
<UL>
<%
While Not rs.EOF
%>
<A HREF=buy.asp?CategoryID=<%=rs("CategoryID")%>&Description=<%=Server.URLEncode(rs("Description"))%>>
<%=rs("Description")%></A><P>
<%
rs.MoveNext
Wend
%>
</UL>
<HR>
</BODY>
</HTML>
buy.asp:
<!--#include file="util.asp" -->
<%
DbPath = SERVER.MapPath("Shopping.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DbPath
CategoryID=Request("CategoryID")
Description=Request("Description")
Head="网上购物超市 - [" & Description & "] 区"
sql = "Select * From Products Where CategoryID=" & CategoryID
sql = sql & " Order By ProductID"
Set rs = conn.Execute( sql )
%>
<HTML>
<HEAD><TITLE><%=Head%></TITLE></HEAD>
<BODY BACKGROUND="nabkgnd.jpg">
<H1 ALIGN=CENTER><%=Head%><HR></H1>
<CENTER>
<Form Action=add.asp Method=POST>
<TABLE Border=1>
<TR BGCOLOR=#00FFFF>
<TD>挑选</TD><TD>商品编号</TD><TD>商品名称</TD><TD>价格</TD><TD>商品简介</TD></TR>
<%
While Not rs.EOF
IsCheck=""
If InStr(Session("ProductList"), rs("ProductID")) > 0 Then
IsCheck="Checked"
End If
%>
<TR>
<TD Align=Center>
<Input Type=CheckBox Name="ProductID" Value="<%=rs("ProductID")%>" <%=IsCheck%>>
</TD>
<TD><%=rs("ProductID")%></TD>
<TD><%=rs("ProductName")%></TD>
<TD Align=Right><%=rs("Price")%></TD>
<TD><A HREF=<%=rs("Link")%>><%=rs("Description")%></A></TD>
</TR>
<%
rs.MoveNext
Wend
%>
</TABLE>
<Input Type=Submit Value="放入购物车">
</Form>
<HR>
<A HREF=check.asp>查看购物车</A> <A HREF=clear.asp>退回所有物品</A><P>
<% ListCategory conn %>
</CENTER>
</BODY>
</HTML>
四、小结
本文论述的方案已在微软NT网络实验系统和Internet上实现,如果结合银行提供的网上支付网关即可组成完整的B2C网上购物系统。由于系统构建中使用了MS Access数据库,没有涉及诸如SQL Server等大型数据库,因此系统设计简单、方便实用,适合于大多数中小规模网上购物的应用场合。作者提供本文中所有的asp和mdb文件供有兴趣的同行实验