277_基于.NET的网上图书销售系统
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
3 网上图书销售系统规划设计
3.1 需求分析
网上图书销售系统首先应该方便用户浏览、购买图书,同时需要由系统管理员进行管理和维护,由此分为前台用户功能和后台管理员功能两个方面。
前台用户功能:
为了方便用户购买图书,网上图书销售系统应该提供以下几种用户功能。
1) 用户注册登录:用户进行注册,登录。
2) 图书浏览:以列表方式显示图书信息供用户浏览。
3) 图书显示:显示图书的详细信息。
4) 图书搜索:使用搜索功能使用户快速地找到所喜欢的图书。
5) 收藏夹:用户可以先将自己感兴趣的图书收藏起来,以便下次登录后查看相关信息,如果打算购买时再放入购物车中。
6) 购物车:这是网上图书销售系统的基本元素。用户找到所喜欢的图书时,可以将其放入购物车中,再继续查看其它图书。
7) 图书订单:用户下订单购买图书,由管理员定期负责处理,根据订单信息向用户送货。
后台管理员功能:
管理员负责维护整个系统的运行,管理系统所有的信息和数据,应该提供以下功能。 【买计算机毕业论文就到计算机毕业论文网】
1) 图书管理:维护网上图书销售系统中的所有图书信息。
2) 分类信息管理:维护系统中的所有分类信息。 [来源:http://think58.com]
3) 出版商信息管理:维护系统中的所有出版商信息。
4) 用户信息管理:显示所有注册用户的信息。
5) 订单管理:定期对用户订单进行处理,向用户送货。
3.2 系统基本结构
由于B/S(Browser/Server)结构具有较好的独立性、可伸缩性和安全性,适合于不同数据库之间的互连,并且便于管理维护,因此整个系统采用客户端、Web服务器及数据库服务器的B/S结构进行设计。基本结构如图2-1所示。
copyright think58 [资料来源:www.THINK58.com]
[资料来源:THINK58.com]
图3-1 系统基本结构
利用IIS架构Web服务器,用于连接客户端和数据库服务器。对于客户端发出的需要对数据库进行访问的请求,Web服务器负责客户端与数据库服务器的网络通信,并将相关数据嵌入返回给客户端的Web页面;对于客户端发出的不需要对数据库进行访问的请求,Web服务器将直接处理这些请求,并将最终生成的Web页面发往客户端浏览器。
3.3 系统设计
3.3.1 系统模块设计
分为用户功能模块设计和管理员功能模块设计两方面,用户登录后,可以进行图书浏览、下订单等操作;管理员登录后,可以进行图书管理、分类信息管理、出版商信息管理、用户信息管理和订单管理等操作。。
1. 用户功能模块设计:
普通用户的各个功能模块,具体设计如图3-2所示: 内容来自think58 [版权所有:http://think58.com]
[资料来源:http://www.THINK58.com]
图3-2 用户功能模块 think58 [资料来源:THINK58.com]
2. 管理员功能模块设计:
管理员负责管理整个系统所有的信息和数据,并做相应的一些处理。其功能模块如图3-3所示。
图3-3 管理员功能模块 copyright think58
3.3.2 数据库设计
数据库主要由9个数据表组成。Books(图书信息表),Items(图书项信息表),Categories(图书分类信息表)存储图书的分类信息,ItemCategory(图书项与分类关联信息表),Publishers(出版商信息表)存储出版商信息,Customers(客户信息表)存储用户注册信息,Favorites(收藏夹信息表)存储用户的收藏夹信息,Orders(订单信息表)存储订单的各项信息,OrderItems(订单项信息表)存储订单具体的购买信息。从而,可详细设计出各数据库对象,包括数据表和存储过程。
数据表:
图书相关信息表分别如表3-1、表3-2、表3-3、表3-4、表3-5所示。
表3-1 图书信息表Books
Books(ItemId为主键,PublisherId为外键)
列(属性)名 中文名称 类型 宽度 是否允许为空
ItemId 图书项ID号 int 4 NOT NULL
PublisherId 出版商ID号 int 4 NOT NULL
Author 作者名 nvarchar 40 NOT NULL
ISBN ISBN号 char 10 NOT NULL
SaleNum 已销售数量 int 4 NOT NULL
表3-2 图书项信息表Items
Items(PKId为主键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 图书项唯一ID int 4 NOT NULL
Name 书名 nvarchar 255 NOT NULL
copyright think58
[资料来源:http://think58.com]
ImageFileSpace 图书封面图文件地址 nvarchar 255 NULL
Description 说明 nvarchar 2000 NULL
UnitPrice 单价 Momey 8 NOT NULL
表3-3 图书分类信息表Categories
Categories(PKId为主键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 分类唯一ID int 4 NOT NULL
Description 分类说明 nvarchar 255 NULL
表3-4 图书项与分类关联信息表ItemCategory
ItemCategory(ItemId为主键,CategoryId为外键)
列(属性)名 中文名称 类型 宽度 是否允许为空
ItemId 图书项ID号 int 4 NOT NULL
CategoryId 分类ID号 int 4 NOT NULL
表3-5 出版商信息表Publishers
Publishers(PKId为主键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 出版商唯一ID int 4 NOT NULL
Name 出版商名称 nvarchar 40 NOT NULL 本文来自think58 [来源:http://www.think58.com]
用户相关信息表分别如表3-6、表3-7所示。
表3-6 客户信息表Customers
Customers(PKId为主键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 客户唯一ID int 4 NOT NULL
Email 客户Email nvarchar 50 NOT NULL
Password 客户登录密码 binary 24 NULL
Name 客户名称 nvarchar 40 NULL
copyright think58
[资料来源:www.THINK58.com]
表3-7 收藏夹信息表Favorites
Favorites(PKId为主键,CustomerId、ItemId为外键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 收藏夹ID号 int 4 NOT NULL
CustomerId 客户ID号 int 4 NOT NULL
ItemId 图书项ID号 Int 4 NOT NULL
订单相关信息表分别如表3-8、表3-9所示。
表3-8 订单信息表Orders
Orders(PKId为主键,CustomerId为外键)
列(属性)名 中文名称 类型 宽度 是否允许为空
PKId 订单唯一ID int 4 NOT NULL
CustomerId 客户ID号 int 4 NULL
Status 订单状态 int 4 NULL
OrderData 订单生成日期 datetime 8 NULL
ShipToName 收件人名称 nvarchar 40 NULL
ShipToAddress 送货地址 nvarchar 255 NOT NULL
SubTotal 总价 Momey 8 NULL
表3-9 订单项信息表OrderItems
OrderItems(OrderId和ItemId为主键)
列(属性)名 中文名称 类型 宽度 是否允许为空
OrderId 订单ID号 int 4 NOT NULL
ItemId 图书项ID号 int 4 NOT NULL
UnitPrice 单价 money 8 NOT NULL
Quantity 购买数量 Int 4 NOT NULL think58好,好think58
存储过程:
因为存储过程可以在程序中被多次调用,而不必多次重复编写该存储过程的SQL语句,所以数据库中建立了大量的存储过程,便于将相关信息加入到数据库中。
与客户相关的存储过程有:新客户注册(CustomerRegister),客户登录(CustomerLogin),修改客户信息(EditCustomer),获取所有客户的信息(GetCustomers),获取单个用户的信息(GetCustomerById)。
与图书相关的存储过程有:新增图书(AddBook),删除图书(DelBook),修改图书信息(EditBook),获取所有图书信息(GetAllBooks),根据图书项ID获取单本图书信息(GetBookById),根据分类ID获取图书信息(GetBooksByCategoryId),根据分类ID获取热门书图书信息(GetPopBooksByCategoryId),根据书名获取图书信息(GetBooksByTitle),根据关键词获取图书信息(GetBooksByKeyword),根据ISBN获取图书信息(GetBooksByISBN),根据出版商获取图书信息(GetBooksByPublisherId)根据作者获取图书信息(GetBooksByAuthor)。
与出版商相关的存储过程有:新增出版商(AddPublisher),删除出版商(DelPublisher),修改出版商信息(EditPublisher),获取所有出版商信息(GetPublishers)。
与图书分类相关的存储过程有:新增图书分类(AddCategory),删除图书分类(DelCategory),修改图书分类说明(EditCategory),获取图书分类信息(GetCategories)。 内容来自think58
与收藏夹相关的存储过程有:新增收藏记录(AddFavorite),删除收藏信息(DelFavorite),根据客户ID获取收藏记录(GetFavoritesByCustomerId)。
与订单相关的存储过程有:获取订单信息(GetOrders),获取单条订单信息(GetOrderById),根据客户ID获取订单信息(GetOrdersByCustomerId),根据状态获取订单信息(GetOrdersByStatus),根据日期获取订单信息(GetOrdersByDate),提交订单(SubmitOrder),修改订单(EditOrder),取消订单(CancelOrder),接受订单(AcceptOrder),确定订单(ConfirmOrder),撤销订单(RevokeOrder),PopFirstWord ,插入订单明细记录(InsertOrderDetailsByList),插入单条订单项(InsertOrderDetail)。
由于该系统建立的存储过程很多,所以在此就只列举出一个存储过程的SQL脚本。
新增图书存储过程AddBook的SQL脚本如下:
CREATE PROCEDURE AddBook
@Name NVARCHAR(255),
@ImageFileSpace NVARCHAR(255),
@Description NVARCHAR(2000),
@UnitPrice MONEY,
@PublisherId INT,
@Author NVARCHAR(40),
@ISBN NCHAR(13),
@CategoryId INT,
@ItemId INT = NULL OUTPUT ----output可以返回一个值
AS
begin tran --事务
--新增Items表记录
insert Items (Name, ImageFileSpace, Description, UnitPrice)
select @Name,@ImageFileSpace,@Description,@UnitPrice
select @ItemId = @@IDENTITY -获取数据表中最后一条插入数据的IDENTITY值
--新增Books表记录
insert Books (ItemId, PublisherId, Author,ISBN)
select @ItemId,@PublisherId,@Author,@ISBN
--新增ItemCategory表记录
insert ItemCategory (ItemId,CategoryId)
select @ItemId,@CategoryId
commit tran
return 0
GO
think58.com [资料来源:THINK58.com]
上一篇:猎头公司管理软件
下一篇:视频音频播放器