商品交易系统二手市场课程设计.docx
《商品交易系统二手市场课程设计.docx》由会员分享,可在线阅读,更多相关《商品交易系统二手市场课程设计.docx(29页珍藏版)》请在冰豆网上搜索。
商品交易系统二手市场课程设计
课程设计
数据库系统
商品交易系统——二手市场
计算机
左亚尧
课程名称______________________
题目名称______________________
学生学院______________________
专业班级______________________
学号______________________
学生姓名______________________
指导教师_________________
2013年1月17日
1引言
1.1课程设计选题
《商品交易系统——二手市场》
1.2课程设计的目的
通过数据库系统课程设计,熟悉了SQLSERVER数据库治理系统的结构与组成;把握了SQLSERVER数据库治理系统的应用技术和的利用;应用ASP开发工具实践了《商品交易系统——二手市场》的数据库应用系统的设计方式、开发进程和SQLSERVER数据库的治理与保护。
最终达到把握数据库治理系统的利用和开发,提高分析问题、解决问题和实践应用能力。
1.3本选题的设计背景
随着运算机技术的进展和互联网时期的到来,人们已经进入了信息时期,亦或是数字化时期。
在数字化的网络环境下,学生希望取得个性化的知足,利用网络便利自己的需要,同时希望能够取得良好的收益;同时,互联网商业模式的运营是时期进步的一个重要步伐,通过简单的操作就能够够剔除传统繁杂的步骤,于是针对学生市场的二手市场是很具有实际价值的,通过简单的发布信息,达到将自己的闲置物品展现给大伙儿看,抑或将自己的需求告知大伙儿,就能够达到必然的收益,这是十分有效的方式。
2系统分析与设计
2.1功能及性能分析
2.1.1功能需求
一般用户功能:
包括商品治理、留言功能、搜索功能
1)商品治理:
用户能够发布新的商品信息,能够对商品进行查看和删除
2)留言功能:
用户能够对商品信息发布者留言
3)搜索功能:
用户能够搜索网站已经发布的商品的信息并查看
治理员功能:
包括用户信息治理、商品信息治理
1)用户信息治理:
治理员能够对所有效户信息进行查看和删除
2)商品信息治理:
治理员能够对所有商品信息进行查看和删除
2.1.2性能需求
为了保证商品交易正常进行,系统性能设计应知足如下要求:
保证系统数据平安性:
由于系统通过INTERNET提供效劳,开放的环境中系统在权限操纵、数据平安、防范内外部解决破坏等平安方法方面具有良好的应变能力,如在每一个登录界面设置了用户信息验证,通过查询登岸界面输入信息是不是为数据库中合法用户来实现相应操作;
保证系统数据一致性:
数据库中的所有信息在任何操作下都能够维持一致。
2.1.3数据流图
《商品交易系统》流程图如下所示:
商品发布流程图
2.2系统的开发运行环境
本系统开发平台:
+SQLServer2005
本系统运行环境:
Windows7
2.3系统整体设计
本系统分治理员用户和一般用户,故依照不同对象设计了前台和后台两个部份:
前台要紧用于一般用户对其商品的治理
后台要紧用于治理员对用户和商品信息进行治理。
系统平安性:
每一个登录界面都设置用户身份验证,只有信息合法的用户才能登入系统。
前台功能结构
后台功能结构
3数据库设计
2
3
3.1数据库概念结构
数据库中各表的数据描述如下:
依照前面所作的需求分析本系统的实体及其属性如下:
治理员(治理员编号,治理员名,治理员密码)
商品(商品编号,题目,邮箱,联系人,,地址,描述,标记,供求,价钱,图片地址,起始时刻,终止时刻,有无图片,点击量,一级分类,二级分类,用户编号)
商品一级分类(一级编号,一级名称)
商品二级分类(一级编号,二级编号,二级名称)
留言信息(商品编号,留言编号,发送时刻,留言内容,留言主题,姓名,)
用户信息(用户编号,用户名,用户密码,性别,证件号码,邮箱,电话号码)
整体E-R图:
3.2数据库逻辑结构
2
3
3.1
3.2
3.2.1关系模型及优化
治理员表(治理员编号,治理员名,治理员密码)其主码为治理员名
商品表(商品编号,题目,邮箱,联系人,,地址,描述,标记,供求,价钱,图片地址,起始时刻,终止时刻,有无图片,点击量,一级分类,二级分类,用户编号)其主码为商品编号,外码为一级分类
商品一级分类表(一级编号,一级名称)其主码为一级编号
商品二级分类表(一级编号,二级编号,二级名称)其主码为一级编号和二级编号,外码为一级分类
留言信息表(商品编号,留言编号,发送时刻,留言内容,留言主题,姓名,)其主码为留言编号
用户信息表(用户编号,用户名,用户密码,性别,证件号码,邮箱,电话号码)其主码为用户名
3.2.2数据字典
该系统由以下表组成:
治理员表:
Admin
商品表:
Goods
商品一级分类表:
GoodType
商品二级分类表:
GoodType2
留言信息表:
message
用户信息表:
UserInfo
治理员表:
Admin
字段
字段名
类型
宽度
1
管理员编号
字符型
15
2
管理员名
字符型
50
3
管理员密码
字符型
50
商品表:
Goods
字段
字段名
类型
宽度
1
商品编号
数值型
2
2
标题
字符型
50
3
邮箱
字符型
50
4
联系人
字符型
50
5
电话
字符型
12
6
地址
字符型
100
7
描述
字符型
1000
8
标记
字符型
5
9
供求
字符型
5
10
价格
字符型
50
11
图片地址
字符型
50
12
起始时间
时间型
13
终止时间
时间型
14
有无图片
字符型
10
15
点击量
数值型
2
16
一级分类
数值型
2
17
二级分类
数值型
2
18
用户编号
数值型
2
商品一级分类表:
GoodType
字段
字段名
类型
宽度
1
一级编号
数值型
2
2
一级名称
字符型
50
商品二级分类表:
GoodType2
字段
字段名
类型
宽度
1
一级编号
数值型
2
2
二级编号
数值型
2
3
二级名称
字符型
50
留言信息表:
message
字段
字段名
类型
宽度
1
商品编号
数值型
2
2
留言编号
数值型
2
3
发生时间
时间型
4
留言内容
字符型
500
5
留言主题
字符型
50
6
姓名
字符型
50
7
电话
字符型
50
用户信息表:
UserInfo
字段
字段名
类型
宽度
1
用户编号
数值型
2
2
用户名
字符型
50
3
用户密码
字符型
50
4
性别
字符型
50
5
证件号码
字符型
50
6
邮箱
字符型
50
7
手机号码
字符型
50
3.3数据库的实现
1
2
3
3.1
3.2
3.3
3.3.1表
USEmarket
GO
CREATETABLEAdmin(
AdminIdchar(15)NOT,
AdminNamechar(50)NOT,
AdminPasschar(50)NOT,
PRIMARYKEY(AdminName)
)
CREATETABLEGoods(
GoodsIdintNOT,
GoodsTitlechar(50),
Emailchar(50),
ContractManchar(50),
Phonechar(12),
Addresschar(100),
Contentchar(1000),
Flagchar(5),
BuySellchar(5),
Pricechar(50),
PicPathchar(50),
ProTimedatetime,
ProTimeEnddatetime,
IsGoodsPicchar(10),
DownCountint,
GoodTypeIDint,
GoodType2IDint,
UserIdint,
PRIMARYKEY(GoodsId),
FOREIGNKEY(GoodTypeID)REFERENCESGoodType(GoodTypeID)
)
CREATETABLEGoodType(
GoodTypeIDintNOTNULL,
TypeNamechar(50)NOTNULL,
PRIMARYKEY(GoodTypeID)
)
CREATETABLEGoodType2(
GoodTypeIDintNOTNULL,
GoodType2IDintNOTNULL,
GoodType2Namechar(50)NOTNULL,
PRIMARYKEY(GoodTypeID,GoodType2ID),
FOREIGNKEY(GoodTypeID)REFERENCESGoodType(GoodTypeID)
)
CREATETABLEmessage(
GoodsIdintNOTNULL,
TitleIdintNOTNULL,
SendTimechar(50),
TitleContentchar(500),
Titlechar(500),
UserNamechar(50),
Phonechar(50),
PRIMARYKEY(TitleId)
FOREIGNKEY(GoodsId)REFERENCESGoods(GoodsId)
)
CREATETABLEUserInfo(
UserIdintNOTNULL,
UserPassWordchar(50)NOTNULL,
UserNamechar](50)NOTNULL,
RegTimechar](50),
Sexchar](50),
CodeNumberchar](50),
Emailchar](50),
MPhonechar](50),
PRIMARYKEY(UserName)
)
3.3.2平安性设计
该系统的用户只有两种,一种是治理员,另一种是一般用户,治理员具有对数据库操作的所有权限,一般用户只有对商品的治理权限,对数据库中其他对象的操作权限将受限。
3.3.3一致性设计
实体完整性:
通过设置主键,实施了主键约束,非空值约束
参照完整性:
一级分类编号作为商品表的外键,也作为二级分类表的外键,商品编号作为留言信息表的外键
用户自概念规那么:
检查邮箱的格式是不是犯错,错误显示“E-mail格式错误!
”
检查电话号码位数是不是正确,错误显示“请输入数字,而且保证位数!
”
3.3.4数据库关系图
4详细设计与实现
1
2
3
4
4.1系统首页
包括文件:
、、、、等
模块利用:
那个地址展现了首页,带有导航、用户登录、治理员登录、搜索和商品查看等模块,每一个模块又是一个单独的aspx,有着各自相应的功能。
用户登录能够直接在首页利用,不需要跳转网页。
4.2用户登录模块
包括文件:
模块利用:
输入已经注册的用户名和密码即可登入系统,输入错误解有对应提示。
模块实现:
登录触发按钮的函数
protectedvoidLoginButton_Click(objectsender,ImageClickEventArgse)
{
DataAccessMarketBase=newDataAccess();
SqlConnectionconn=newSqlConnection(MarketBase.SqlBase);
if==""||=="")
{
("alert('请填写完整信息再点击登录')");
("");
}
else
{
try
{
();
DataTableGetUserInfoDt=newDataTable();
GetUserInfoDt=("select*fromuserinfowhereusername='"++"'anduserpassword='"++"'",conn);
intCheckNum=if(CheckNum==1)
{
("alert('登录成功!
')");
Session["User"]=[0]["UserName"].ToString();
Session["UserId"]=[0]["UserId"].ToString();
("");
}
else
{
("alert('登录失败!
请与数据治理员联系!
')");
("");
}
}
catch(SqlExceptionerr)
{
("alert('"++"')");
}
}
}
4.3用户注册模块
包括文件:
模块利用:
填写相关信息,其中电话号码位数带有自概念规那么,需要输入正确的位数才可通过,电子邮件格式也带有自概念规那么,需要输入正确的邮箱格式才可通过,填写信息完毕后点击注册按钮,系统会在注册按钮下方显示“操作成功”,这时就完成注册,取消注册会清除页面已填信息,返回顾页按钮可回到首页页面。
模块实现:
注册触发按钮的函数:
protectedvoidButton1_Click(objectsender,EventArgse)
{
DataAccessMarketBase=newDataAccess();
intState;
stringtime;
if==""||=="")
{
ext="请你务必填写必要的项!
";
}
if!
=
="两次密码不一致,请核实!
";
SqlConnectionconn=newSqlConnection(MarketBase.SqlBase);
try
{
();
if("select*fromuserinfowhereusername='"++"'",conn).!
=0)
="你注册的用户名已经被他人注册,请改其它的名字注册";
elseif("select*fromuserinfowhereEmail='"++"'",conn).!
=0)
="你注册的EMail已经被他人注册,请改其它的EMail注册";
else
{
();
time="yyyy-MM-dd-hh-mm");
stringconnString="insertintouserinfo(username,userpassword,regtime,sex,codeNumber,Email,MPhone)values('"++"','"+txtPassword.Value+"','"+time+"','"++"','"++"','"+txtEMail.Value+"','"++"')";
State=(connString,conn);
if(State==1)
{
oString();
stringmarkeddate="yyyy-MM-dd");
stringtime=;
stringCheckFlag;
stringPic;
SqlConnectionconn=newSqlConnection;
();
HttpPostedFilehttpup=;
if!
=0)
{
stringPathFileName=;
inti=("\\");
stringfilename=(i+1);
("images/pic/"+filename));
picpath="images/pic/"+filename;
Pic="1";
CheckFlag="1";
}
else
{
picpath=null;
Pic="0";
CheckFlag="0";
}
stringtest="insertintogoods(GoodsTitle,flag,Email,IsGoodsPic,ContractMan,Phone,Address,Content,BuySell,Price,PicPath,ProTime,ProTimeEnd,GoodTypeID,GoodType2ID,userid)"
+"values('"++"','"+CheckFlag+"','"++"','"+Pic+"','"++"','"++"','"++"','"++"','"++"','"++"','"+picpath+"','"+markeddate+"','"+time+"','"++"','"++"','"+useridnumber+"')";
state=(test,conn);
if(state==1)
{
="添加成功!
";
="";
="";
="";
="";
="";
="";
="";
="";
}
else
="操作失败!
";
}
}
4.4商品治理模块
包括文件:
模块利用:
先登录用户,然后点击左侧的已发布信息,即可抵达商品治理模块,模块含有商品的编号和名称,可对商品进行查看和删除操作。
模块实现:
查看详情触发按钮函数
protectedvoidPage_Load(objectsender,EventArgse)
{
stringuseridNo=Session["UserId"].ToString();
SqlConnectionconn=newSqlConnection;
();
DataTabledt=newDataTable();
dt=("select*fromgoodswhereuserid='"+useridNo+"'",conn);
=;
();
}
删除触发按钮函数
protectedvoidperson_RowCommand(objectsender,GridViewCommandEventArgse)
{
stringuseridNo=Session["UserId"].ToString();
intindex=;
stringid=[index].Cells[0].Text;
SqlConnectionconn=newSqlConnection;
();
intstate=("deletefromgoodswheregoodsid='"+id+"'",conn);
if(state==1)
{
="删除成功!
";
DataTabledt=newDataTable();
dt=("select*fromgoodswhereuserid='"+useridNo+"'",conn);
=;
();
}
else
="删除失败!
";
}
4.5商品信息模块
包括文件:
模块利用:
可在此模块查看商品信息,还有留言功能,填入相关信息点击留言按钮可完成留言,点击商品图片可放大图片。
模块实现:
留言触发按钮函数:
protectedvoidButton1_Click(objectsender,EventArgse)
{
GridViewliuyanDl=(GridView)Session["liuyan"];
DataAccessMarketBase=newDataAccess();
TempId=Request["goodsid"];
contentsav=if==""||=="")
lbInfo.Text="请你务必填写必要的项";
else
{
SqlConnectionconn=newSqlConnection(MarketBase.SqlBase);
try
{
();
stringTempTime="yyyy-MM-dd");
state=("insertintomessage(titlecontent,username,phone,sendtime,goodsid)values('"++"','"++"','"++"','"+TempTime+"','"+TempId+"')",conn);
if(state==1)
{
="操作成功!
";
="";
="";
="";
DataSetds=newDataSet();
SqlDataAdapteradpter=newSqlDataAdapter("select*frommessagewheregoodsid='"+TempId+"'",conn);
(ds);
=[0].DefaultView;
();
}
else
{
="操作失败,请与数据治理员联系!
";
="";
="";
="";
}
}
catch(SqlExceptionerr)
{
=}
}
}
4.6搜索模块
包括文件:
模块利用:
键入关键字,调整适被选项可实现全站商品的搜索
模块实现:
搜索触发按钮函数:
protectedvoidbtnSearch_Click(objectsender,EventArgse)
{
stringKey;
if(txtKeyword.Text==""||txtKeyword.Text==null)
{
ext;