莱克B2C在线商城设计说明书
SystemDesignSpecification
莱克B2C在线商城设计说明书
Prepared by 拟制 |
张定水 |
Date 日期 |
2016-09-07 |
Reviewed by 评审人 |
|
Date 日期 |
|
Approved by 批准 |
|
Date 日期 |
|
Catalog
目 录
1. Introduction 简介.......................................................................................................... 4
1.1 Purpose 目的................................................................................................ 4
1.2 Scope 范围................................................................................................... 4
1.3 Name 软件名称................................................................................................... 4
1.4 Functions 软件功能.......................................................................................... 4
1.5 Applications软件应用......................................................................................... 4
2. High Level Design概要设计............................................................................................. 4
2.1系统功能设计...................................................................................................... 4
2.2 系统架构设计..................................................................................................... 5
2.2.1 三层架构................................................................................................... 5
2.3 Database数据库设计............................................................................................ 6
2.3.1 数据字典................................................................................................. 6
2.3.2 数据表设计.............................................................................................. 6
2.3.3 表关系..................................................................................................... 7
3. Low Level Model Design 模块详细设计............................................................................ 7
3.1 User Model Design 用户模块................................................................................. 7
1. Introduction 简介
1.1 Purpose 文档目的
编写此文档的目的是进一步定制软件开发的细节问题,希望能使本软件开发工作更具体。是为使用户、软件开发者及分析人员对该软件的初始规定有一个共同的理解,它说明了本产品的各项功能需求、性能需求和数据要求,明确标识各功能的实现过程,阐述实用背景及范围,提供客户解决问题或达到目标所需的条件或权能,提供一个度量和遵循的基准。
1.2 Scope 本文档适用范围
在各个行业中,当我们接受到用户的商业项目后,在项目运行的全过程中充满了不确定因素,只有有效的运用项目管理的科学和艺术,才有可能使项目取得成功。对以上方面要想达到有效的管理水平,必须有一套科学的管理方法,但是即使有了科学的管理方法,由于项目干系人之间的沟通、协作不到位,往往达不到预期的结果。鉴于这种情况我们开发一套项目管理协作支撑系统,旨在为项目干系人提供一个交流、协作以及项目的进度跟踪监控、项目的质量控制、项目相关资源的管理的软件平台,从而提高项目管理水平,实现了工作的协同化、提高了工作效率。
1.3 Name 软件名称
莱克B2C在线商城
1.4Applications软件应用领域
本软件适用于B2C在线商城
2. High Level Design概要设计
2.1系统功能设计
.
2.2 系统架构设计
2.2.1 三层架构
本项目采用三层架构进行开发,其优势在于便于分工合作、易于扩展、便于维护,其三层之间的关系如图所示。其中表示层用于与用户进行交互;业务逻辑层负责处理项目业务流程;数据访问层负责操作数据库;entity层中的实体类是三层之间的数据载体,用于在三层之间传递数据;
间传递数据;
QueryRunner+BeanHandler
2.3 Database数据库设计
2.3.1表关系
数据库中的表关系图或者PD设计图。
注意:如题,在商城系统开发时遇到商品的多级分类,为增强扩展性,子类可以任意添加,不知此类问题数据库如何设计更为科学:
网友回答:
表结构为: id(编号) name(分类名) parentID(父类编号) 简单举例如下:
id name parentID
1 饮料 0(为0表示第一大类)
2 水果 0
3 百事可乐 1
4 雪碧 1
5 苹果 2
6 香蕉 2
这样设计的好处是:可以无限极分类。。。。便于维护和统一管理。
故在分类表增加一个字段标识其父分类。
本项目数据库共包含 个表,其表结构如下表所示。
项目所有数据库表见表
LaykeShop数据库设计
表:首字母大写
Customer:顾客表
列名 |
类型 |
是否为空 |
约束 |
说明 |
cid |
Char(32) |
Not null |
|
顾客id |
Code |
Char(64) |
Not null |
|
激活码 |
|
Varchar(50) |
Not null |
|
注册邮箱 |
Emailstate |
Bit |
|
Default 0 |
邮箱激活状态 |
Account |
Varchar(16) |
Not null |
|
账号 |
password |
Varchar(16) |
Not null |
|
密码 |
regtime |
Time |
Not null |
|
注册时间 |
zip |
Varchar(6) |
|
|
邮编 |
sex |
Nvarchar(1) |
|
|
性别 |
birthday |
Datetime |
|
|
生日 |
realname |
Nvarchar(8) |
|
|
真实姓名 |
phone |
Varchar(11) |
|
|
联系号码 |
address |
Nvarchar(50) |
|
|
家庭住址 |
Merchant: 商家表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Mid |
Char(32) |
Not null |
|
Id |
|
Varchar(50) |
Not null |
|
注册邮箱 |
Account |
Varchar(16) |
Not null |
|
账号 |
Password |
Varchar(16) |
Not null |
|
密码 |
Regtime |
Datetime |
Not null |
|
注册时间 |
ownerName |
varchar(16) |
not null |
|
店铺所有者姓名 |
shopName |
Varchar(16) |
|
|
店铺姓名 |
shopIntroduction |
Varchar(255) |
|
|
店铺介绍 |
Cart:购物车表
列名 |
类型 |
是否为空 |
约束 |
说明 |
cartId |
Char(32) |
Not null |
|
Id |
gid |
Char(32) |
Not null |
外键 |
商品ID |
Amount |
Int |
Default 0 |
|
数量 |
Orders:订单表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Oid |
Char(32) |
Not null |
|
Id |
Totalprice |
decimal(18, 2) |
Not null |
|
总价 |
Ispay |
Bit |
|
|
是否支付 |
Payway |
Varchar(50) |
|
|
支付方式 |
LogisticsNum |
Varchar(20) |
|
|
物流单号 |
Ordertime |
Datetime |
|
|
下单时间 |
Paytime |
Datetime |
|
|
支付时间 |
receiverAddrId |
Char(32) |
|
外键 |
收货地址 |
Isdelete |
Boolean |
|
Default 0 |
是否删除 |
OrderItem:订单条目表
列名 |
类型 |
是否为空 |
约束 |
说明 |
oitemId |
Char(32) |
Not null |
|
Id |
Ordersid |
Char(32) |
Not null |
外键 |
属于某个订单 |
Goodsid |
Char(32) |
Not null |
外键 |
商品id |
Goods_attr_relation_id |
Int |
Not null |
外键 |
商品属性关系表id |
Number |
Int |
Not null |
|
数量 |
Subprice |
decimal(18, 2) |
|
|
小计 |
|
|
|
|
|
Goods:商品表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Gid |
Char(32) |
Not null |
|
商品id |
mid |
Char(32) |
Not null |
外键 |
商家id |
Categoryid |
Char(32) |
Not null |
外键 |
分类id |
Goodsname |
Varchar(50) |
|
|
商品名 |
Goodsprice |
decimal(18, 2) |
Not null |
|
商品价格 |
goodspic |
Varchar(255) |
Not null |
|
商品图片url |
isdelete |
Boolean |
Default 0 |
Default 0 |
是否删除 |
Goodsintro |
Varchar(255) |
|
|
商品介绍 |
GoodsCity |
Varchar(10) |
|
|
商品产地 |
Collections 收藏表
列名 |
类型 |
是否为空 |
约束 |
说明 |
id |
Int |
Not null |
Identity |
Id |
Goodsid |
Char(32) |
Not null |
外键 |
商品id |
Customerid |
Char(32) |
Not null |
外键 |
顾客id |
Goodsattr商品属性表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Id |
Int |
Not null |
Identify |
Id |
Color |
Varchar(32) |
not null |
|
颜色 |
Size |
Varchar(32) |
Not null |
|
尺寸 |
Store |
Int |
Not null |
Default 999 |
库存表 |
|
|
|
|
|
|
|
|
|
|
Goods_attr_relation商品 属性 关系表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Id |
Int |
Not null |
主键 |
Not null |
Goodsid |
Char(32) |
Not null |
外键 |
商品id |
Goodsattrid |
Int |
Not null |
外键 |
商品id |
Category:分类表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Id |
Int |
|
|
Id |
ParentId |
int |
|
0标识最顶层分类 |
父分类id |
CategoryName |
Varchar(20) |
|
|
分类名 |
IsDelete |
boolean |
|
Default 0 |
是否删除 |
Admin:管理员表
列名 |
类型 |
是否为空 |
约束 |
说明 |
account |
Varchar(16) |
Not null |
|
账号 |
password |
Varchar(16) |
Not null |
|
密码 |
Comments:评价表
列名 |
类型 |
是否为空 |
约束 |
说明 |
Commentsid |
Char(32) |
Not null |
|
Id |
Goodsid |
Char(32) |
Not null |
外键 |
商品id |
Orderid |
Char(32) |
Not null |
外键 |
订单id |
Star |
Tinyint |
Not null |
|
评价星级 |
Context |
Varchar(255) |
Not null |
|
评价内容 |
Comentdate |
Datetime |
Not null |
|
评价时间 |
Customerid |
Char(32) |
Not null |
|
评价的人 |
Receiver:收货地址表
列名 |
类型 |
是否为空 |
约束 |
说明 |
receiverId |
Char(32) |
Not null |
|
Id |
cid |
Char(32) |
not null |
外键 |
客户id |
receiverName |
Varchar(50) |
Not null |
|
收货人姓名 |
Telephone |
Varchar(11) |
Not null |
|
手机号 |
Address |
Varchar(50) |
Not null |
|
地址 |
isDelete |
Boolean |
Not null |
Default 0 |
是否删除 |
3. Low Level Model Design 模块详细设计
3.1 User Model Design 用户模块 Customer
(1)Process analysis业务流程分析
1.普通顾客Customer访问商城,在未登陆的状态下可以访问index.jsp、list.jsp等,当需要登陆时会自动跳转到登陆页面,Customer选择登陆或注册。
2.注册用户后登陆,具有所有用户的权限,能够
>修改个人信息
>查询已购买的订单信息
>购买新的商品
3.详细功能设计说明:
BaseServlet说明:
baseServlet继承HttpServlet,重写了Service方法,将一个Servlet的Parameter作为方法名,调用子类的方法。子类通过返回值,给出转发还是重定向,以及到哪一个页面。
A:登录 # login
¨ 需求1:简单的js表单校验。
¨ 需求2:登录图片验证码动态更新。VerifyCodeServlet+VerifyCode
<script type="text/javascript"> function _vchange(){ var vcode = document.getElementById("vcode"); vcode.setAttribute("src", "<c:url value='/VerifyCodeServlet?'/>" + new Date().getTime()); } </script>
<img id="vcode" src="<c:url value='/VerifyCodeServlet' />" alt="" align="absmiddle" style="position:relative;top:-2px;" /> <a href="javascript:_vchange();" style="color:#999;">看不清,换一张</a> |
添加一个随机参数解决动态刷新,不添加参数浏览器会有缓存导致没有更新图片 |
¨ 需求3:登录失败错误信息回显。
*实现方案:给Request域设置一个错误信息Attribute,内容为错误信息。
B: 退出 # quit
¨ 需求1:给Session设置死掉。Request.getSession().invalidate(); 然后 重定向到index.jsp
C: 注册 # register
¨ 需求1:js简单表单校验(账号,密码,邮箱)。实现
¨ 需求2:用户名,邮箱查重,通过Ajax异步实现。
¨ 需求4:图片验证码校验 实现
¨ 需求5:注册失败信息回显。 实现
D: 个人中心#customer_info.jsp
¨ 需求1:个人信息修改ajax异步
¨ 需求2:使用邮箱协议,异步发送邮箱激活链接(放到个人信息页面了)
¨ 需求3:已购买商品显示(我的订单)
¨ 需求4:我的收藏列表显示
¨ 需求5:评价管理#查看评价#添加评价
¨ 需求6:密码修改
¨ 需求7:收货地址管理
(2)Flow Diagram流程图
3.2 店铺模块
(1)Process analysis业务流程分析
店铺的业务流程:
1.进入登录模块,输入信息,从数据库中查询数据进行比较验证是否正确。
2.登录后,可以对密码进行修改。
3.可以对自己的店铺商品进行管理
4.管理订单,对订单的处理
(2) Flow Diagram流程图
3.3 管理员模块
(1)Process analysis业务流程分析
管理员操作:
1.进入登录模块,输入信息,从数据库中查询数据进行比较验证是否正确。
2.登录后,可以对密码进行修改。
3.可以对自己的工资进行查询
4.管理员工的考勤记录
5.参数管理、员工管理
(2)Flow Diagram流程图