目录
第一章 前言
互联网发展速度迅猛,电子商务成为21世纪商务发展道路上的一大热点,随着宽带网络的普及及互联网应用方式的发展,电子商务正以前所未有的速度对
传统的商务方式及理论造成可很大的冲击。并对以往的商务方式所进行的行业进行可很大程度的渗透。
电子商务以其低廉的成本,相对方便的应用,以及互联网络所带来的前所未有的宣传效应,正成为商务活动发展的一个至关重要的平台。因此我们想开发一个在线的影片租赁系统,以此来表达我们对电子商务发展的拥护和对其前景的看好
第二章编程环境基础知识
2.1 利用ADO访问数据库
ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:
1.创建数据库源名(DSN)
2.创建数据库链接(Connection)
3.创建数据对象
4.操作数据库
5.关闭数据对象和链接
每一步的作法如下:
1、创建数据源名
DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。
2、创建数据库链接(Connection)
链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:
set Conn=Server.createObject(“ADOBD.CONNECTION”)
这条语句创建了链接对象Conn,接下来:
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")
conn.Open connstr
这条语句打开链接,用到了DSN,本例为“connstr”。
以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。
3、创建数据对象(Record Set)
ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:
Set Record Set=Conn.Execute(sqtStr)
这条语句创建并打开了对象Record Set,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:
rs=“SELECT * FROM shop_books”
Set Record Set=mConn.Execute(rs)
这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。
4、操作数据库
我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:
rs=“INSERT INTO tab1 VALUES(1,2)”
mConn.Execute(rs)
/执行插入操作
5、关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。
Record Set.close
Set Record Set=Nothing
/关闭创建的数据对象
mConn.close
Set mConn=Nothing
/关闭创建的链接对象
2.2ASP与CGI的比较
CGI(Common Gateway Interface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。
Active Server Pages开发Web应用程序的特点:
1.完全嵌入HTML,与HTML、Script语言完美结合。
2.无须手动编译和链接程序。
3.面向对象,并可扩展ActiveX Server组件功能。
4.使用脚本语言(JavaScript、VBScript或PERL)编写。
5.存取数据库轻松容易(使用ADO组件)。
6.可使用任何语言编写自己的ActiveX Server组件。
7.无浏览器兼容问题。
8.程序代码隐藏,客户端仅能看到ASP输出的HTML文件。
9.缩短Web开发时间。
相比之下,使用CGI开发Web应用程序具有以下缺点:
1.不易与HTML文件集成。
2.须使用其他较复杂的语言来开发CGI程序。
3.程序开发时间较长。
4.存取数据库不容易。
5.每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。
可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。
第三章需求分析
3.1功能需求分析
传统的影片出租方式是以客户到固定的店面进行挑选,确定后找店员进行登记,交押金以后才能把片子带走,这种出租方式过程中的一些过程非常烦琐,给客户和店主带来的许多的不便。比如:商店的选址,客户在遇到业务繁忙的情况等等,这就容易造成一些本来可以避免的错误的发生。
因此,我们在开发在线的影片租赁系统的时,应对传统出租过程中的一些问题进行分析,并对其进行修改。
综上所述,影片租赁系统客户界面部分在开发的时候主要的功能、大致如下:
客户界面部分
用户的登陆和注册
个人信息的查看修改
影片的浏览
影片的预定
租赁信息的查看
3.2性能需求分析
3.2.1软件
开发环境为:OS(操作系统) Windows XP专业版
服务器:IIS 5.X
开发工具为:ASP ACCESS数据库 Dreamweaver
运行环境的基本需求: IE浏览器
3.2.2硬件
OS最低运行环境: CPU PENTIUNⅡ 300MHZ
内存 128MB
硬盘 20GB
Dreamweaver最低运行环境:
WinXP, Win2000, NT, Win9X
软件理想的运行环境:
Windonws Xp专业版
CPU PENTIUNⅡ 300MHZ
内存 128MB
硬盘 20GB
第四章总体设计
依据需求分析所确定的系统目标进行总体设计
4.1数据库的设计
4.1.1数据库的需求分析
用户的需求主要体现在对各总细心的浏览的,查询,保存和更新的操作上,这就要求数据库设计上能够满足用户的这些需求,并且在结构的设计上能够做到简单明了,并保证系统的工作效率
因此,影片的租赁系统客户管理部分在数据设计时,经过上述的需求分析,应该设计如下的数据项
用户信息:用户名 密码 真实姓名 身份证 详细住址,电话 E-MAIL
影片信息:片名 类型 简介,图片 影片ID 状态
影片类型:类型ID 类型名称
租赁信息:影片ID 用户ID 租借时间 租期 押金 结算时间 退还金额
系统信息: 版权 关于 联系人
4.1.3数据库逻辑结构的设计
影片租赁系统中所有的数据都存贮在ACCESS数据库中
将上面的数据库感念结构转化为ACCESS数据库所支持的关系数据模型
①关系模式
影片:(影片ID 名称 类型 简介 图片 状态)
用户: (用户ID 用户名 密码 真实姓名 身份证 详 细住址 电话 E-MAIL)
影片类型: (编号 名称)
租赁信息:(影片ID 用户ID 租借时间 租期 押金 退 还时间 退还金额 错误信息)
②范式分析
在数据库逻辑结构设计上,会接触到关系模型数据库关系的最常用的三个范式。数据库关系的完善程度,很大程度上决定了数据库逻辑结构设计的成败,因此,对实体与属性之间的范式分析,是很有必要的。各个实体与属性之间的范式分析如下:
数据库表中的字段都是单一属性的,不可再分
数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖
数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖
4.1.4物理结构的设计
命名规则:
1.没一个表把一个缩写用做表的一部分,如Viddeoinfo被缩写成VI
2.所有的列名后面都有一个后缀,用来表示大致的数据类型,如S代表字符串类型,N代表数值数据类型等等
3.主键包含一个后缀ID
4.外键包含其父键的主键名称及后缀F
由上面对实体与属性之间的关系分析与范式分式,得出了系统的物理结构如下:
租价方案表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
PMT_ID_N | 租价方案ID | ● | autocount | Not Null | ||
PMT_Price_N | 日租价 | single | Not Null | 0 | ||
PMT_Deposit_N | 押金 | single | Not Null | |||
PMT_Description_N | 租价方案描述 | varchar | 50 | Not Null | 0 | |
PMT_LateFee_N | 滞纳金 | single | Not Null | 0 |
。
供应商信息表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
PI_ID_N | 供应商ID | ● | autocount | Not Null | ||
PI_Name_S | 名称 | varchar | 50 | Not Null | ||
PI_Description_S | 描述 | varchar | 250 |
系统信息表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
SI_Owner_S | 系统使用者 | ● | varchar | 250 | ||
SI_Copyright_N | 版权所有者 | varchar | 200 | |||
SI_About_S | 关于 | varchar | 250 | |||
SI_Logo_S | Logo地址 | varchar | 250 | |||
SI_Content_S | 联系人Email | varchar | 250 |
租赁信息表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
TAC_ID_N | 租赁号 | ● | auto count | Not Null | ||
TAC_VI_ID_FN | 租赁影片ID | ○ | int | Not Null | ||
TAC_UI_ID_FN | 租赁用户ID | ○ | int | Not Null | ||
TAC_ReserveTime_D | 预定时间 | datetime | Not Null | |||
TAC_TimeOut_B | 是否超时 | datetime | Not Null | False | ||
TAC_Return_B | 是否返还 | boolean | Not Null | False | ||
TAC_StartTime_D | 起租时间 | datetime | ||||
TAC_Lease_N | 租期 | int | 1 | |||
TAC_EndTime_D | 结租时间 | datetime | ||||
TAC_UserPayment_N | 用户付款数 | single | 0 | |||
TAC_Status_N | 租赁状态 | int | Not Null |
影片承载介质表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
TI_ID_N | 介质ID | ● | autocount | Not Null | ||
TI_Description_S | 介质名 | varchar | 100 | Not Null |
影片信息表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
VI_ID_N | 影片ID | ● | autocount | Not Null | ||
VI_TI_ID_FN | 影片介质ID | ○ | int | Not Null | ||
VI_VS_ID_FN | 影片类型ID | ○ | int | Not Null | ||
VI_PMT_ID_FN | 租价方案ID | ○ | int | Not Null | ||
VI_PI_ID_FN | 供应商ID | ○ | int | Not Null | ||
VI_Title_S | 影片名 | varchar | 50 | Not Null | ||
VI_Content_S | 内容 | big varchar | ||||
VI_Director_S | 导演 | varchar | 100 | |||
VI_Playactor_S | 演员 | varchar | 100 | |||
VI_Issuer_S | 发行商 | varchar | ||||
VI_Rank_N | 评价 | int | Not Null | 1 | ||
VI_RentCount_N | 出租次数 | int | Not Null | 0 | ||
VI_Count_N | 浏览计数 | int | Not Null | 0 | ||
VI_Status_N | 影片状态 | int | Not Null | 1 | ||
VI_AddTime_D | 添加时间 | datetime | Not Null | Now() | ||
VI_Img_S | 图片地址 | varchar | 150 |
影片类型表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
VS_ID_N | 影片类型ID | ● | autocount | Not Null | ||
VS_Description_S | 描述 | varchar | 50 | Not Null | ||
VS_Count_N | 类型浏览技术 | int | Not Null | 0 | ||
VS_RentCount_N | 类型租赁计数 | int | Not Null | 0 |
用户信息表
字段名 | 描述 | 键 | 类型 | 长度 | 空值 | 默认值 |
UI_ID_N | 用户ID | ● | autocount | Not Null | ||
UI_PI_ID_FN | 供应商ID | ○ | int | Not Null | 0 | |
UI_Name_S | 用户名 | varchar | 20 | Not Null | ||
UI_Password_S | 密码 | varchar | 100 | Not Null | ||
UI_IsLock_B | 用户是否锁定 | boolean | Not Null | False | ||
UI_CerRank_N | 信用级别 | int | Not Null | 0 | ||
UI_IsProvider_B | 用户是否为供应商 | boolean | Not Null | False | ||
UI_Email_S | | varchar | 50 | Not Null | ||
UI_QQ_S | | varchar | 20 | |||
UI_IsAdmin_B | 用户是否为管理员 | boolean | Not Null | False | ||
UI_RentCount_N | 用户租赁计数 | int | Not Null | 0 |
注意:键类型中,“●”标注的为主键;“○”标注的为外键。
影片浏览界面
用户信息界面
用户资料管理界面
用户租赁信息界面
用户预定影片界面
如果您在计算机领域有任何疑虑或不确定的地方,请毫不犹豫地与老师交流噢,我们期待着为您提供有针对性的建议和指导。您的问题和讨论对我们来说都非常重要。