获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设
随着中国加入WTO,全球经济一体化的逐步深入,网上书店已是现代传统书店必不可少的经营策略。目前,网上书店在国际互联网上可以实现的商务功能已经多样化,可以说从最基本的对外沟通展示功能、信息发布功能,在线图书展示功能、在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎以往传统书店功能都可以在互联网上进行电子化的高效运作。
技术的进步对传统书店上网解决方案提出更严格的要求和挑战。为了保护传统书店的投资,书店上网解决方案应切合传统书店实际的需求和发展的趋向,使投入回报和管理效益最大化,传统书店在实施上网方案的之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。网上书店具体实施的质素直接影响传统书店在Internet的实际效果和经济效益,这不仅是技术问题,同时也涉及到管理的因素。
综上所述,网上书店已经成为互联网时代传统书店的必由之路。
ASP.NET是ASP的下一代版本,然而ASP.NET又并非从ASP3.0自然演化而来,在许多方面,ASP.NET与ASP有着本质的不同。ASP.NET完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激动人心的新技术,正是这些具有革新意义的新特性,让ASP.NET远远超越了ASP,同时也提供给web开发人员更好的灵活性,有效缩短了web应用程序的开发周期。ASP.NET与Windows 2000 Server/Advanced Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。
ASP.NET 是统一的 Web 应用程序平台,它提供了为建立和部署企业级 Web 应用程序所必需的服务。ASP.NET 为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。
ASP.NET 是 Microsoft .NET Framework 的一部分,是一种可以在高度分布的 Internet 环境中简化应用程序开发的计算环境。.NET Framework 包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。它也包含 .NET Framework 类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。
首先ASP.NET的运行环境:
Win2000 Server+IIS(Win2000 Server 中IIS是默认安装) /
Win2000 Advance Server+IIS(这里IIS也是默认安装) /
WinXP+IIS / Win2003+IIS
除了上面的环境,Visual Studio 2008自带编译器和Web服务器进行调试,在部署网站之前,所有工作都可以在Visual Studio 2008中完成。
部署网站到IIS时,可以直接复制网站,也可以采用ClickOnce部署,两者的区别是前者快速方便,后者灵活性较强。
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的跑书店买需要的图书。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,网上书店为大家带来了极大的方便。我所开发的这个网站所采用的是当前较为流行的软件Visual Studio2008 + DreamWeaver 8作为实现,以数据库SQL Server 2008作为系统的后台操作。
《网上书店》系统特点:
(1)、先进的购书流程
引入购物车购物方式,把记录客户所有的购书临时信息写入数据库表中,订单结束后,自动清除相关数据,客户不用再担心订购时临时数据的丢失,确保客户购书准确无误。
(2)、科学的书店管理模式
通过完善的信息发布系统,客户可以及时得到书店最新图书的相关信息,掌握行业动向;后台结构化管理模式,涵盖了栏目设置、图书资料编辑、用户管理、订单管理、基础信息管理等等,为书店的电子化管理提供了一套良好的管理模式。
(3)、人性化的操作界面
一个网站,能否吸引顾客的经常光顾,界面的美观也显得非常重要。本书店系统经过精心打造,同时也可根据书店客户的品味专门订制,让书店的设计充分体现电子商务时期的时尚、大众化。
(4)、完善的在线帮助
提供详细的在线帮助信息,如交款方式、退换图书原则、交易条款等。帮助用户了解购书流程,清楚书店在退换图书等各方面的原则及条款。
(1) 书店前台
功能强大 、操作方便
前台作为与用户直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便性,目的是让大多数不在懂电脑操作的客户,也能轻松的享受电子商务给他们带来的便利。
(2) 书店后台
本系统后台管理在考虑书店管理操作简便的同时,提供了强大的书店管理模式。它包括用户资料管理,图书分类管理,图书资料管理,订单管理,图片管理,图书推荐管理,图书打折管理、物流管理、版权信息等等。
前台:用户注册—>用户登录—>查看图书信息—>添加图书到购物车—>在线支付
后台:管理员登录—>订单管理、图书管理、会员管理、物流管理、图片管理—>退出
根据系统功能分析,可以画出系统的功能模块图,系统模块图如下图所示,图3-1和图3-2分别为前台和后台的功能结构图。
网上书店系统前台 |
用户注册登录 |
用户信息修改 |
图书搜索 |
图书详细信息 |
购物车 |
用户充值 |
用户付款 |
用户帮助 |
联系管理员 |
后台入口 |
图3-1 前台系统功能结构图
网上书店后台管理 |
管理首页 |
订单管理 |
版权信息 |
会员管理 |
物流管理 |
系统管理 |
图书管理 |
订单信息 |
会员信息 |
是否已确认 |
是否已付款 |
是否已发货 |
是否已归档 |
管理员管理 |
会员管理 |
图书管理 |
图书类别管理 |
图片上传管理 |
支付方式管理 |
配送方式管理 |
配送地点管理 |
图3-2 后台系统功能结构图
通过以上的系统需求分析和系统总体设计,就已经有了一个网上系统的大体轮廓了
1、前台主要功能包括
注册/登录、购物车、联系方式、图书查询、图书分类浏览、图书展示、打折专区、热门推荐、精品推荐、在线帮助功能等等。
2、书店系统前台设计的特色
(1) 购物车
每个注册的用户,都拥有一个属于自已的购物车管理界面,客户可以轻松的查看购物车中的图书。本系统充分考虑到了本模块对于客户的重要性,所以界面尽量做的简捷,采用开放式结构,一目了然,方便客户轻松掌控自已的信息。
(2) 购书的详细过程
会员注册-->选择图书-->放入购物车-->去下订单
购物车与下订单:
推出了全新的网上商务理念,这也是本系统与其他书店较大的不同的地方之一。
(3) 灵活多样的图书展示区
网站前台图书显视栏目分为以下几种方式:
(1)精品推荐 (2) 图书打折区 (3)热销图书 (4)图书分类
(4) 详细的用户帮助信息
主要包括交款方式、退换图书原则、配送信息和交易条款的信息。
3、系统提供完善的系统管理
在主页的管理入口,点击进入。出现验证管理员窗口,输入用户名和密码,进入系统管理器。后台分为订单管理、图书管理、用户管理、管理员帐号管理、物流管理和图片管理。
(1) 订单管理模块主要实现的是对订单信息的审核,如果订单信息不合格,可以进行删除。此模块中加入了订单的搜索,以便查看特定订单的信息。可以更改订单的状态:是否已确认、是否已付款、是否已发货和是否已归档。
(2) 图书管理是对图书信息进行管理,添加或删除图书信息,也可对图书信息进行修改。动态添加图书信息,信息内容要求完善。
(3) 用户管理和管理员帐号管理可以添加、删除用户和管理员帐号,可以对用户和管理员进行统一的管理。
(4) 物流管理模块主要实现的是支付方式管理、配送方式管理、配送地点管理
(5) 图片管理模块主要实现的是图书和图书类别相关图片的添加和删除。
在网上书店系统中,数据库应当解决如下需求。
● 保存注册用户的个人信息,包括联系资料等。
● 保存图书信息,包括书名、价格、作者、图片等信息。
● 保存购物车的详细信息
● 保存购书信息,包括用户ID、图书ID、数量、总价等。
● 保存订单信息,包括日期、支付方式、是否确认等。
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的数据表,以及它们之间的关系,为后面的逻辑结构设计打下基础。分析此系统的需求,可以得到数据库关系图,如图5-1所示
图5-1 数据库关系图
数据库的设计
数据库的概念结构设计完毕后,可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。如图5-2所示
图5-2 数据库表
系统部分数据库表的逻辑结构
表设计详细信息见附录
如图6-1所示,为网上书店首页,主要向用户展示各种图书信息。
图6-1 网上书店首页
数据库连接代码
public SqlConnection GetConnection() {
string myStr = ConfigurationManager.
AppSettings["ConnectionString"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
return myConn;
}
登录判定
当用户进行添加图书到购物车、在线充值、在线付款、修改个人信息等操作时,程序需要验证用户是否已经登录作为前提条件,如果用户没有登录,则不应该访问这些页面,因此需要制作一个判断用户是否登录并加以处理的模块。
///
/// 判断用户是否存在
///
/// 会员登录名
/// 会员登录密码
///
public int UserExists(string P_Str_Name, string P_Str_Password) {
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Pr_UserExists", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter Name = new SqlParameter("@Name", SqlDbType.VarChar, 50);
Name.Value = P_Str_Name;
myCmd.Parameters.Add(Name);
SqlParameter Password = new SqlParameter("@Password", SqlDbType.VarChar, 50);
Password.Value = P_Str_Password;
myCmd.Parameters.Add(Password);
SqlParameter returnValue = myCmd.Parameters.Add("returnValue",
SqlDbType.Int, 4);
returnValue.Direction = ParameterDirection.ReturnValue;
//执行过程
myConn.Open();
try {
myCmd.ExecuteNonQuery();
}
catch (Exception ex) {
throw (ex);
}
finally {
myCmd.Dispose();
myConn.Close();
}
int P_Int_returnValue = Convert.ToInt32(returnValue.Value.ToString());
return P_Int_returnValue;
}
用户注册代码
///
/// 向用户表中插入信息
///
/// 会员名
/// 性别
/// 密码
/// 真实姓名
/// 找回密码问题
/// 找回密码答案
/// 电话号码
/// E_Mail
/// 会员所在城市
/// 会员详细地址
/// 邮编
/// 预付金额
/// 登录日期
public int AddUInfo(string P_Str_Name, bool P_Bl_Sex, string P_Str_Password, string P_Str_TrueName, string P_Str_Questions, string P_Str_Answers, string P_Str_Phonecode, string P_Str_Emails, string P_Str_City, string P_Str_Address, string P_Str_PostCode)
{
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Pr_InsertUInfo", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter Name = new SqlParameter("@Name", SqlDbType.VarChar, 50);
Name.Value = P_Str_Name;
myCmd.Parameters.Add(Name);
SqlParameter sex = new SqlParameter("@sex", SqlDbType.Bit, 1);
sex.Value = P_Bl_Sex;
myCmd.Parameters.Add(sex);
SqlParameter Password = new SqlParameter("@Password", SqlDbType.VarChar, 50);
Password.Value = P_Str_Password;
myCmd.Parameters.Add(Password);
SqlParameter TrueName = new SqlParameter("@TrueName", SqlDbType.VarChar, 50);
TrueName.Value = P_Str_TrueName;
myCmd.Parameters.Add(TrueName);
SqlParameter Questions = new SqlParameter("@Questions",
SqlDbType.VarChar, 50);
Questions.Value = P_Str_Questions;
myCmd.Parameters.Add(Questions);
SqlParameter Answers = new SqlParameter("@Answers", SqlDbType.VarChar, 50);
Answers.Value = P_Str_Answers;
myCmd.Parameters.Add(Answers);
SqlParameter Phonecode = new SqlParameter("@Phonecode",
SqlDbType.VarChar, 20);
Phonecode.Value = P_Str_Phonecode;
myCmd.Parameters.Add(Phonecode);
SqlParameter Emails = new SqlParameter("@Emails", SqlDbType.VarChar, 50);
Emails.Value = P_Str_Emails;
myCmd.Parameters.Add(Emails);
SqlParameter City = new SqlParameter("@City", SqlDbType.VarChar, 50);
City.Value = P_Str_City;
myCmd.Parameters.Add(City);
SqlParameter Address = new SqlParameter("@Address", SqlDbType.VarChar, 200);
Address.Value = P_Str_Address;
myCmd.Parameters.Add(Address);
SqlParameter PostCode = new SqlParameter("@PostCode", SqlDbType.Char, 10);
PostCode.Value = P_Str_PostCode;
myCmd.Parameters.Add(PostCode);
SqlParameter MemberId = myCmd.Parameters.Add("@MemberId",
SqlDbType.BigInt, 8);
MemberId.Direction = ParameterDirection.Output;
//执行过程
myConn.Open();
try {
myCmd.ExecuteNonQuery();
}
catch (Exception ex) {
throw (ex);
}
finally {
myCmd.Dispose();
myConn.Close();
}
return Convert.ToInt32(MemberId.Value.ToString());
}
用户登录
protected void btnLoad_Click(object sender, EventArgs e) {
Session["UID"] = null;
Session["Username"] = null;
if (txtName.Text.Trim() == "" || txtPassword.Text.Trim() == "") {
Response.Write("");
}
else {
if (txtValid.Text.Trim() == lbValid.Text.Trim()) {
int P_Int_IsExists = uiObj.UserExists(txtName.Text.Trim(),
txtPassword.Text.Trim());
if (P_Int_IsExists == 100) {
DataSet ds = uiObj.ReturnUIDs(txtName.Text.Trim(),
txtPassword.Text.Trim(), "UserInfo");
Session["UID"] = Convert.ToInt32(ds.Tables["UserInfo"].
Rows[0][0].ToString());
Session["Username"] = ds.Tables["UserInfo"].Rows[0][1].ToString();
Response.Redirect("index.aspx");
}
else {
Response.Write("");
}
}
else {
Response.Write("");
}
}
}
购物车代码
///
/// 向购物车中添加信息
///
/// 图书编号
/// 会员价格
/// 会员编号
public void AddShopCart(int P_Int_BookID, float P_Flt_MemberPrice, int P_Int_MemberID)
{
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Pr_InsertShopCart", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter BookID = new SqlParameter("@BookID", SqlDbType.BigInt, 8);
BookID.Value = P_Int_BookID;
myCmd.Parameters.Add(BookID);
SqlParameter MemberPrice = new SqlParameter("@SumPrice", SqlDbType.Float, 8);
MemberPrice.Value = P_Flt_MemberPrice;
myCmd.Parameters.Add(MemberPrice);
SqlParameter MemberID = new SqlParameter("@MemberID", SqlDbType.BigInt, 8);
MemberID.Value = P_Int_MemberID;
myCmd.Parameters.Add(MemberID);
//执行过程
myConn.Open();
try {
myCmd.ExecuteNonQuery();
}
catch (Exception ex) {
throw (ex);
}
finally {
myCmd.Dispose();
myConn.Close();
}
}
///
/// 显示购物车中的信息
///
/// 信息表名
/// 控件名
/// 会员编号
public void SCIBind(string P_Str_srcTable, GridView gvName, int P_Int_MemberID) {
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Pr_GetShopCart", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter MemberID = new SqlParameter("@MemberID", SqlDbType.BigInt, 8);
MemberID.Value = P_Int_MemberID;
myCmd.Parameters.Add(MemberID);
//执行过程
myConn.Open();
try {
myCmd.ExecuteNonQuery();
}
catch (Exception ex) {
throw (ex);
}
finally {
myCmd.Dispose();
myConn.Close();
}
SqlDataAdapter da = new SqlDataAdapter(myCmd);
DataSet ds = new DataSet();
da.Fill(ds, P_Str_srcTable);
gvName.DataSource = ds.Tables[P_Str_srcTable].DefaultView;
gvName.DataBind();
}
///
/// 返回合计总数的Ds
///
/// 信息表名
/// 员工编号
///
public DataSet ReturnTotalDs(int P_Int_MemberID, string P_Str_srcTable) {
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Pr_TotalInfo", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter MemberID = new SqlParameter("@MemberID", SqlDbType.BigInt, 8);
MemberID.Value = P_Int_MemberID;
myCmd.Parameters.Add(MemberID);
//执行过程
myConn.Open();
try {
myCmd.ExecuteNonQuery();
}
catch (Exception ex) {
throw (ex);
}
finally {
myCmd.Dispose();
myConn.Close();
}
SqlDataAdapter da = new SqlDataAdapter(myCmd);
DataSet ds = new DataSet();
da.Fill(ds, P_Str_srcTable);
return ds;
}
管理员登录后台代码
protected void btnLogin_Click(object sender, EventArgs e) {
if (txtAdminName.Text.Trim() == "" || txtAdminPwd.Text.Trim() == "") {
Response.Write("");
}
else {
if (txtAdminCode.Text.Trim() == Session["Valid"].ToString().Trim()) {
int P_Int_IsExists = mcObj.AExists(txtAdminName.Text.Trim(),
txtAdminPwd.Text.Trim());
if (P_Int_IsExists == 100) {
DataSet ds = mcObj.ReturnAIDs(txtAdminName.Text.Trim(),
txtAdminPwd.Text.Trim(), "AInfo");
Session["AID"] =
Convert.ToInt32(ds.Tables["AInfo"].Rows[0][0].ToString());
Session["Aname"] = ds.Tables["AInfo"].Rows[0][1].ToString();
Response.Write("
window.open('AdminIndex.aspx');window.close();");
}
else {
Response.Write("");
}
}
else {
Response.Write("");
}
}
}
后台设计
后台的设计主要分为6大块:订单管理、管理员管理、会员管理、物流管理、图书管理和图片管理。
1) 订单管理模块主要实现的是对订单信息的审核,如果订单信息不合格,可以进行删除。此模块中加入了订单的搜索,以便查看特定订单的信息。可以更改订单的状态:是否已确认、是否已付款、是否已发货和是否已归档。
2) 管理员管理和会员管理模块的主要实现的是管理员和用户的添加、修改和删除。
3) 物流管理模块主要实现的是支付方式管理、配送方式管理、配送地点管理。
4) 图书管理模块主要实现的是图书和图书类别信息的添加、修改和删除。
5) 图片管理模块主要实现的是图书和图书类别相关图片的添加和删除。
如图6-2所示,为后台图书管理页面,管理员可以查看图书相关信息,可以对图书进行信息修改和删除操作。
图6-2 图书管理页面
如图6-3所示,为后台订单管理页面,管理员可以对定单进行核实,也可以删除相应的订单信息。
图6-3 订单管理页面
如图6-3所示,为图片管理页面,管理员可以进行图片的上传和删除操作。
图6-3 图片管理页面
短短两个月毕业设计,每天忙忙碌碌,一步一步走来,今天终于迎来了自己的成果。在这期间,经常遇到各种各样的问题,时常为不能解决的问题而一筹莫展,但这并未因此打消我的信心,而是使我更加专著的去解决问题,也因此这相对短暂的时间却是三年来过得最为充实的日子,充满了挑战的艰辛与乐趣。
在老师的指导和督促下,经过两个月的紧张设计与开发,我的毕业设计基于 ASP.NET的网上书店系统终于开发完成了。 通过本系统的开发使我所学的专业知识得到了综合的运用,对以前很多抽象、枯燥的理论知识加深了理解,同时也使我学会了利用结构化程序设计思想开发管理信息系统,并用模块化方法加以实现。
通过本次的系统开发,我深刻地认识到信息系统开发的每一步都是以上一步为基础的。因此每一步文档的编写都必须正确、完整,否则就会给下一步的工作带来不必要的麻烦,加大工作量。因为系统是为用户服务的,所以要充分了解用户的需求,考虑用户的特点和使用方面的习惯,以协调人机关系。在系统实施中应结合各方面的要求,尽可能选择自己熟悉的程序设计语言。系统测试中要根据实际情况设计有效的测试方法。 在系统设计过程中,从用户的角度出发,在系统的可用性和易用性上做了很多功夫,力求能达到最好的效果。但由于我的编程实现能力和毕业设计的时间都有限,我对学生档案管理这一系列工作的具体内容也不是特别地了解,所以目前我还不能把网上书店这个系统较为完善地实现出来,希望以后有机会能够弥补这个遗憾。
能够顺利的完成这次毕业设计,也得益于指导教师的帮助,在他们的帮助下,通过到网上查资料,借阅图书等一些途径,使困难很快的得到解决。
短短的两个月,终于按照设计说明书的要求完成了自己的毕业设计,由于时间有限、自身知识水平不足,我的设计还难免存在着很多不足的地方,请各位老师给予指正和提出宝贵的建议,我坚信在今后的工作中我会做得更好。
[1]龚赤兵.《精通ASP.NET 2.0电子商务网站开发》.2008年1月,第1版,人民邮电出版社
[2]刘乃丽.《精通ASP.NET 2.0 + SQL Server 2008项目开发》.2008年5月,第1版,人民邮电出版社
[3]陈冠军.《精通ASP.NET 2.0典型模块设计与实现》.2007年2月,第1版,人民邮电出版社
[4]郑耀东.《精通ASP.NET 2.0的Web 2.0应用》.2007年9月,第1版,人民邮电出版社
[5]吕洋波.《ASP.NET 2.0宝典》.2007年4月,第1版,电子工业出版社
大学3年的学习生活即将结束,在这4年的学习生涯中得到了许多人的关心和帮助,在此,我要衷心感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长的过程中给予了我很大的帮助。
经过近几个月的忙碌,本次毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及同学们的支持,想要完成这个设计是难以想象的。
这次做毕业设计的经历也会使我受益良多,我感受到做毕业设计是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。不积跬步何以至千里。
本设计能够顺利的完成,要特别感谢帮助我完成毕业设计的指导老师苏凯英的关怀和教导,她对我的毕业设计提出了很多的建议,还给我提供了大量的资料。她严谨的治学态度、诲人不倦的教学作风给我留下了深刻的印象。此外还要感谢各位任课老师,正是他们平时的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业设计工作顺利完成,在此向全体老师表示由衷的谢意,感谢他们三年来的辛勤栽培。
列名 |
数据类型 |
是否允许空 |
说明 |
AdminID |
bigint |
否 |
管理员ID,自动编号 |
Admin |
varchar(50) |
否 |
管理员帐号 |
Password |
varchar(50) |
否 |
管理员密码 |
表1:Admin管理员表
列名 |
数据类型 |
是否允许空 |
说明 |
AreaID |
bigint |
否 |
区域ID,自动编号 |
AreaName |
varchar(50) |
否 |
区域名称 |
AreaKM |
int |
否 |
区域与本地的距离 |
表2:Area区域表
列名 |
数据类型 |
是否允许空 |
说明 |
BookID |
bigint |
否 |
图书ID,自动编号 |
ClassID |
bigint |
否 |
类型ID,外键 |
BookName |
varchar(50) |
否 |
图书名称 |
BookIntroduce |
ntext |
是 |
图书详细介绍 |
ISBN |
varchar(20) |
否 |
ISBN序号 |
PageNum |
varchar(20) |
是 |
图书页码 |
Publisher |
varchar(100) |
否 |
出版社 |
PublishDate |
varchar(20) |
否 |
出版时间 |
Author |
varchar(50) |
否 |
作者 |
BookUrl |
varchar(50) |
否 |
图书对应图片的URL地址 |
MarketPrice |
float |
否 |
图书市场价格 |
MemberPrice |
float |
否 |
图书会员价格 |
Isrefinement |
bit |
否 |
是否推荐 |
IsHot |
bit |
否 |
是否热销 |
AddDate |
datetime |
否 |
图书信息添加日期 |
IsDiscount |
bit |
否 |
是否打折 |
表3:BookInfo图书信息表
列名 |
数据类型 |
是否允许空 |
说明 |
BuyID |
bigint |
否 |
购书信息ID,自动编号 |
BookID |
bigint |
否 |
图书ID,外键 |
Num |
int |
否 |
购买的图书数量 |
OrderID |
bigint |
否 |
订单ID,外键 |
SumPrice |
float |
否 |
总价 |
MemberID |
bigint |
否 |
会员ID,外键 |
表4:BuyInfo购书信息表
列名 |
数据类型 |
是否允许空 |
说明 |
CartID |
bigint |
否 |
购物车ID,自动编号 |
BookID |
bigint |
否 |
图书ID,外键 |
Num |
int |
否 |
购买数量 |
SumPrice |
float |
否 |
总价格 |
MemberID |
bigint |
否 |
会员ID,外键 |
表5:ShopCart购物车表
列名 |
数据类型 |
是否允许空 |
说明 |
MemberID |
bigint |
否 |
用户ID,自动编号 |
Name |
varchar(50) |
否 |
用户帐号 |
Sex |
bit |
否 |
性别 |
Password |
varchar(50) |
否 |
用户密码 |
TrueName |
varchar(50) |
是 |
真实姓名 |
Questions |
varchar(50) |
是 |
安全提问 |
Answers |
varchar(50) |
是 |
安全答案 |
Phonecode |
varchar(20) |
是 |
电话号码 |
Emails |
varchar(50) |
是 |
电子邮件 |
City |
varchar(50) |
是 |
所在城市 |
Address |
varchar(200) |
是 |
具体地址 |
PostCode |
char(10) |
是 |
邮政编码 |
AdvancePayment |
float |
否 |
用户余额 |
LoadDate |
datetime |
否 |
注册时间 |
表6:Member会员表
列名 |
数据类型 |
是否允许空 |
说明 |
ImageID |
bigint |
否 |
图片ID,自动编号 |
ImageName |
varchar(50) |
否 |
图片名称 |
ImageUrl |
varchar(200) |
否 |
图片URL地址 |
表7:图片信息表