网上购物系统软件需求规格说明书
一、关于此项目
1.1. 开发周期
本项目的开发周期为 2016 - 2017 学年第一学期。项目启动时间为 2016 年 9 月 5 日,预期完成时间为 2016 年 12 月 23 日。
1.2. 用户特点
系统假定用户会使用电脑,并能够浏览网页内容。
1.3.工程目录结构简介
├─config
│ database-config.xml //数据库配置文件
│
├─src
│ └─com
│ └─groupnine
│ └─oss
│ ├─admin //管理员相关
│ │ ├─action //控制层
│ │ │ GetUnsolvedTransactionAction.java
│ │ │
│ │ ├─dao //数据库访问层
│ │ │ AdminDao.java
│ │ │ AdminDaoImpl.java
│ │ │
│ │ ├─entity //用于后台传递数据的实体
│ │ │ Admin.java
│ │ │ Transaction.java
│ │ │
│ │ └─service //服务层
│ │ AdminService.java
│ │ AdminServiceImpl.java
│ │
│ ├─demo //该包下存放相关的示例代码,可以在编码时参考,
│ │ ├─action //若与 mealOrdering 仓库中代码有冲突,以本包中代码为准
│ │ │ UploadImageAction.java
│ │ │
│ │ ├─dao
│ │ │ DemoDao.java
│ │ │
│ │ └─service
│ │ ImageUpload.java
│ │
│ ├─filter //项目中用到的过滤器
│ │ EncodingFilter.java
│ │ LoginFilter.java
│ │
│ ├─pub //三个用户角色都能用到的一些类
│ │ └─entity
│ │ GoodsInOrder.java
│ │ Order.java
│ │
│ ├─seller //商家相关
│ │ ├─action
│ │ │ GetShopInfoAction.java
│ │ │
│ │ ├─dao
│ │ │ SellerDao.java
│ │ │ SellerDaoImpl.java
│ │ │
│ │ ├─entity
│ │ │ Goods.java
│ │ │ GoodsAttr.java
│ │ │ GoodsImage.java
│ │ │ Shop.java
│ │ │
│ │ └─service
│ │ SellerService.java
│ │ SellerServiceImpl.java
│ │
│ ├─user //用户相关
│ │ ├─action
│ │ │ GetUserInfoAction.java
│ │ │
│ │ ├─dao
│ │ │ UserDao.java
│ │ │ UserDaoImpl.java
│ │ │
│ │ ├─entity
│ │ │ GoodsInShoppingCart.java
│ │ │ Receiver.java
│ │ │ User.java
│ │ │
│ │ └─service
│ │ UserService.java
│ │ UserServiceImpl.java
│ │
│ └─util // 项目中用到的一些工具
│ DBConfig.java // DBUtil 的辅助类,用于从 xml 文件中读出配置信息
│ DBUtil.java // 用于获取数据库连接
│ Page.java // 一个泛型类,用于分页获取数据
│ StringUtil.java // 一个字符串的工具类,只有一个方法,有需要就用。
│
└─WebContent
│ index.jsp //网站首页
│
├─demopages //示例代码,与 demo 包下的类协同工作
│ imageUpload.jsp
│
├─META-INF
│ MANIFEST.MF
│
├─pages //网站其他页面
│ │ user-signup.jsp //用户注册页
│ │
│ ├─core //与登录注册、后台无关的其他页面
│ │ shopping-cart.jsp
│ │
│ ├─home //存放后台管理页面
│ │ admin.jsp
│ │ seller.jsp
│ │ user.jsp
│ │
│ └─login //登录页面
│ admin.jsp
│ user.jsp
│
├─style //样式文件
│ ├─css
│ │
│ ├─fonts
│ │
│ └─js
│
└─WEB-INF
│ web.xml
│
└─lib //项目中用到的所有第三方库文件, 可能不全,少的自行补充。
二、关于此文档
本文档主要用于说明用户提出的需求,明确系统的功能,以及相关的约束和要求,为开发人员提供开发依据。
2.1. 主要读者
主要读者是参与需求分析、项目设计、项目实现和测试的相关人员。
2.2. 术语和缩略语
术语、缩略语 | 解释 |
---|---|
用户 | 买家、卖家统称为用户 |
普通用户 | 用户的买家部分 |
商家 | 用户的卖家部分 |
管理员 | 系统管理员,主要负责用户信息管理及店铺审核 |
三、用户分类
系统的用户有游客、用户、管理员三类。其中用户可分为普通用户和商家两种。
不同的用户角色具有不同的需求和权限,并在需要时可以进行角色转换。
- 用户可以使用游客角色。
- 管理员可以使用游客角色。
- 商家可以使用普通用户角色。
四、用户功能需求
4.1. 总功能表与用例图
系统需实现以下功能:
表 3: 功能概述 | |
---|---|
功能名称 | 功能概诉 |
商品查询与浏览 | 游客 / 用户对商品目录检索、关键词检索 |
购物车管理 | 用户对购物车内商品的添加、删除、更新 |
登陆与注册 | 游客注册;用户 / 管理员登陆,登录后用户只能查看到自己能使用的功能 |
用户信息管理 | 用户 / 管理员对用户信息的添加、删除、更新、查询 |
投诉商家 | 用户以已完成订单为依据对商家进行投诉;管理员处理投诉 |
收货人管理 | 收货人的添加、删除、更新、查询 |
收藏夹管理 | 用户对已收藏店铺 / 商品的添加、删除、查询 |
订单发起与管理 | 订单的发起、发货、确认收货、历史查询 |
开店申请 | 用户发起开店申请,管理员处理申请 |
店铺信息管理 | 商家 / 管理员对店铺信息的添加、删除、更新、查询 |
商品管理 | 商家对商品的添加、删除、更新、状态查看 |
销售统计 | 店铺内整体 / 单品销量和利润趋势 / 分布的统计 |
为了保持用例图的简单,下面的用例图省去了登录与注册,也没有表现出合适的用户权限。
4.2. 数据字典
数据字典描述要和系统交互的数据。
数据字典已移入数据库设计文档中。
4.3. 游客 / 用户
4.3.1. 游客 / 用户商品查询与浏览
系统要支持目录和关键词两种方式搜索。
游客 / 用户搜索用例活动图如下:
4.3.2. 游客 / 用户购物车管理
游客 / 用户可以通过商品页面直接填加商品到购物车。在管理购物车时,可以修改商品数量,也可以直接删除商品。游客 / 用户购物车在关闭浏览器或者退出登录后仍保留。
游客 / 用户购物车管理用例活动图如下:
4.3.3. 游客 / 用户登陆与注册
游客可以通过注册来获取账户,注册时要提供自定义的用户名和可用的手机号,用户密码要满足特定的要求,具体见数据字典。
游客 / 用户登录与注册用例活动图如下:
4.3.4. 用户个人信息管理
用户可以修改自己除用户名以外的任何个人信息,但不允许自主删除帐号。
用户个人信息管理过程过于简单,不提供用例活动图。
4.3.5.用户收货人管理
系统要记录用户收货地址使用次数,当用户管理或挑选地址使用时将使用次数最多的地址排在首位。当用户自主删除收货人时,系统要保留数据,以备后用。
用户搜索用例活动图如下:
4.3.6. 用户收藏夹管理
用户可以直接在商品页面点击收藏按钮收藏商品,在店铺页面点击收藏按钮收藏店铺。在管理收藏夹时,可以将任意的店铺和商品从收藏夹中删除。用户自主删除收藏后,系统要保留数据,以备后用。
用户收藏夹管理用例活动图如下:
4.3.7. 用户投诉商家与开店申请
用户若对商家或订单有所不满,所可以以已有订单作为投诉依据。在发起投诉时,系统要提示用户先与商家沟通,减少系统中总投诉的数量。投诉由管理员处理。
用户若想通过此系统销售物品,可以通过发起开店申请。开店申请由管理员处理。
用户投诉商家用例活动图如下:
商家(其实是用户)发起开店申请用例活动图如下:
4.3.8. 用户发起订单
用户通过在购物车中挑选商品发起订单。
用户发起订单用例活动图如下:
4.3.9. 用户管理订单
用户在订单管理中心能看到自己所有状态的所有订单,但只能查看详细信息或对订单确认收货,不能删除订单。订单管理中心要提供用户按时间和按关键词两种查询方式。当用户确认收货时,不管当前订单状态是什么,标识着一个订单的结束。订单完成或后用户可以立即或稍后对商品进行评价,评价将影响店铺评价等级。
用户管理订单用例活动图如下:
4.4. 商家
4.4.1. 订单管理
商家可见的订单状态有限,具体描述如如『订单状态转换与可见性』一节描述。商家可以查看订单详细信息和对订单进行发货,且支持批量发货操作。管理中心要提供按时间范围查询和按关键词查询两种方式。
商家管理订单用例活动图如下:
4.4.2. 店铺信息管理
商家可以修改自己店铺信息,不允许自主删除店铺。
商家店铺信息管理用例活动图如下:
4.4.3. 商品管理
商家可以对自己店铺内的商品进行添加、修改、删除。商家可以对指定产品进行定时打折,可以指定打折后的金额或打折的比例。当商家 / 管理员删除商品时,系统要保留数据,以备后用。
商家商品管理用例活动图如下:
4.4.4. 销售统计
销售统计要产生报表,包括对店铺内整体、单个商品销售情况统计:
-
整体销售统计:
- 商品利润分布(饼图)。
- 商品销量分布(饼图)。
- 总销量趋势(折线图)。
- 总利润趋势(折线图)。
-
单个商品销售统计:
- 销量趋势(折线图)。
- 利润趋势(折线图)。
商家获得销售统计用例活动图如下:
4.5. 管理员
管理员不能自主注册,只能通过给定的帐号进行登录。
4.5.1. 登录
管理员登录时候供编号和密码。
登录过程过于简单,不提供用例活动图:)
4.5.2. 对用户信息管理
管理员可以通过用户手机号或用户名或昵称来定位用户。管理员可以添加系统用户、修改任何用户的个人信息,也可以删除任何用户。当管理员删除用户时,系统要保留数据,以备后用。
管理员对用户信息管理用例活动图如下:
4.5.3. 处理投诉 / 申请
管理员在处理投诉 / 申请时,要能直接点击订单号获取订单详细信息。
管理员处理投诉与开店申请用例活动图如下:
4.5.4. 查询订单
所有订单的所有状态对管理员可见。管理员可以通过订单号查询订单、查看订单详细信息,但不可操作订单状态。
查询订单过程过于简单,不提供用例活动图。
4.5.5. 对店铺信息管理
管理员可以修改任何店铺信息,可以删除任何店铺。当管理员删除店铺时,系统要保留数据,以备后用。
管理员对店铺信息管理用例活动图如下:
4.6. 投诉 / 申请状态转换图
投诉 / 申请由用户发起,由管理员处理 / 拒绝。
投诉 / 申请事务的状态转换图如下:
4.7. 订单状态转换与可见性
用户行为与订单状态转换图如下:
用户与商家订单可见性如下:
五、时序图设计
1. 时序图
1.1. 游客
1.1.1. 购物车管理
1.2. 用户功能
1.2.1. 登录/注册
1.2.2. 获取商品信息
1.2.3. 购物车管理
1.2.4. 收货人管理
1.2.5. 订单管理
1.2.6. 收藏管理
1.2.7. 申请开店/用户投诉
1.3. 商家功能
1.3.1. 店铺信息管理
1.3.2. 订单管理
1.3.3. 商品管理
1.3.4. 销售统计
- JavaScript plotting library for jQuery
- 根据绘图需要,从数据库获取相应数据。
1.4. 管理员功能
1.4.1. 登录
1.4.2. 事务处理
1.4.3. 用户信息管理
1.4.4. 店铺信息管理
与用户信息管理类似,不再提供时序图
六、数据库设计
1. 关于此文档
1.1. 文档目的
本文档的目的是设计《网上购物系统》中各项功能和非功能性需求实现时所需要的数据库,并可以此数据库为根据实现具体的数据存储。同时为详细设计人员提供设计依据,其他本项目组的开发人员也可参阅。
1.2. 文档范围
本文档包含一下几个部分:
- 文档介绍。
- 数据库环境说明。
- 逻辑设计。
- ~~物理设计~~。
- 安全性设计。
- 优化。
- 数据库管理与维护说明。
1.3. 读者对象
《网上购物系统数据库设计报告》的阅读对象为:
- 对相关业务技术和总体方案作出决策的管理人员和质量管理人员。
- 对本《数据库设计报告》进行评审和确认的有关业务、技术人员。
- 参加详细设计,测试设计阶段工作的全体设计人员。
- 《网上购物系统》项目组,其他有权需要调用本文档的人员。
2. 数据库环境说明
运行的目标操作系统为 Windows 10 + Debian 8.6。 采用的数据库系统为 Mysql community server 5.5。 设计工具为 PowerDesigner15。 数据库编码方式为 utf-8,数据库中主要字符的编码格式为 utf-8。其中一个英文字符占用 1 个字节,一个中文字符占用三个字节。
3. 实体间联系 / 概念设计
4. 数据定义 / 逻辑设计
日期类型只精确到日,时间类型精确到秒。 +店铺编号,普通用户申请开店是填写的。
所有编号不允许修改和删除。 所有带状态标记的元祖,删除时都是假删除。
分类表允许删除元祖。
表名 | 英文名 | 功能说明 |
---|---|---|
用户表 | user | 保存用户信息 |
管理员表 | admin | 保存管理员信息 |
事务表 | transaction | 记录事务信息 |
店铺表 | shop | 记录店铺信息 |
商品表 | goods | 保存商品信息 |
商品图片表 | goods_image | 保存商品的预览图地址 |
商品属性表 | goods_attribute | 记录商品的属性信息 |
商品订单表 | goods_order | 记录订单信息 |
订单中商品表 | goods_in_order | 记录订单中的商品信息 |
收货人表 | receiver | 记录收货信息 |
收藏店铺表 | favorite_shops | 记录收藏夹中的店铺信息 |
收藏商品表 | favorite_goods | 记录收藏夹中的商品信息 |
购物车表 | shopping_cart | 保存购物车信息 |
分类表 | category | 提供两层分类 |
4.1. 用户表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
用户编号 | user_id | 整型 | 非空 | 主键,从1开始自增 |
用户名 | username | 可变字符型(25位) | 非空 | 注册/登录时填写。唯一 。字母、数字、'-'、下划线的组合,以字母开头 |
登录密码 | password | 可变字符型(120位) | 非空 | 注册/登陆时填写。字母、数字、'-'、下划线的组合,不少于 6 个字符、不超过 20 个字符。 |
昵称 | nickname | 可变字符型(20位) | 默认为用户名 | |
手机号 | phone | 字符型 (11位) | 非空 | 注册/登陆时填写。唯一 |
头像 | avatar | 可变字符型(50位) |
图片地址,默认头像为
images/avatars/default.jpg
。当用户自主设置时,采用时间格式
yyyyMMddHHmmssSSS
(精确到毫秒)并追加随机3位(10以内)数字 + '.jpg' 形式存储于文件系统中, 并更新数据库中图片地址
|
|
性别 | sex | 枚举类型 | 男,女,保密三选一 | |
出生日期 | birthday | 日期类型 | ||
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.2. 管理员表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
管理员编号 | admin_id | 整型 | 非空 | 主键,登录使用 |
登录密码 | password | 可变字符型(120位) | 非空 | 不少于6个不多于20个字符 |
管理员名称 | admin_name | 可变字符型(20位) | 处理事务时显示 |
4.3. 事务表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
事务编号 | transaction_id | 整型 | 非空 | 主键,从1开始自增 |
用户编号 | user_id | 整型 | 非空 | 外键,提交人 |
管理员编号 | admin_id | 整型 | 外键,处理人,提交时为空 | |
事务类型 | transaction_type | 枚举类型 | 非空 | 开店申请,用户投诉 |
事务状态 | transaction_status | 枚举类型 | 非空 | 未处理,已通过,已拒绝 |
内容描述 | comment | 可变字符型(300位) | 非空 ,不超过 100 个汉字 | |
提交时间 | commit_time | 时间类型 | 非空 | |
完毕时间 | complete_time | 时间类型 | ||
处理备注 | annotation | 可变字符型(100位) | 管理员填写 ,不超过 100 个汉字 | |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.4. 店铺表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
店铺编号 | shop_id | 整型 | 非空 | 主键,自增 |
用户编号 | user_id | 整型 | 非空 | 外键,绑定的用户 |
申请状态 | apply_status | 字符型(10位) | 非空 | 待审核,已通过,未通过,默认待审核 |
店铺名称 | shop_name | 可变字符型(90位) | 非空 | 不超过 30 个汉字 |
店铺地址 | address | 可变字符型(150位) | 非空 | 不超过 50 个汉字 |
联系方式 | phone | 字符型(11位) | 非空 | 用户手机号 |
店铺描述 | shop_describe | 可变字符型(300位) | 未设置则显示默认值--"暂无描述"。不超过 100 个汉字 | |
公告 | announcement | 可变字符型(300位) | 未设置则显示默认值--"暂无公告"。不超过 100 个汉字 | |
总评分 | evaluate_sum | 长整型 | 店铺总评分,初始为0 | |
评分人数 | evaluate_number | 长整型 | 评价过的人数,初始为0 | |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.5. 商品表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
商品编号 | goods_id | 整型 | 非空 | 主键,从1开始自增 |
分类编号 | category_id | 整型 | 非空 | 外键 |
店铺编号 | shop_id | 整型 | 非空 | 外键 |
商品名称 | goods_name | 可变字符型(90位) | 非空 | 不超过 30 汉字 |
商品描述 | goods_describe | 可变字符型(300位) | 不超过 100 汉字 | |
销量 | sales | 整型 | 非空 | 默认为0 |
打折截止时间 | discount_deadline | 时间类型 | 默认为 2000-01-01 00:00:00 | |
打折比例 | discount_rate | double | 默认为1 | |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.6. 商品图片表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
图像编号 | image_id | 整型 | 非空 | 主键,从1开始自增 |
商品编号 | goods_id | 整型 | 非空 | 外键 |
图像地址 | image_addr | 字符型(50位) | 非空 |
采用时间格式
yyyyMMddHHmmssSSS
(精确到毫秒)并追加随机3位(10以内)数字 + '.jpg' 。每次获取图像时,根据图像地址排序,最多获取最近上传的 6 张
|
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.7. 商品属性表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
属性编号 | attribute_id | 整型 | 非空 | 主键,从1开始自增 |
属性值 | attribute_value | 可变字符型(90位) | 非空 | 不超过 30 个汉字 |
商品编号 | goods_id | 整型 | 非空 | 外键 |
进价 | cost | double | 非空 | |
售价 | price | double | 非空 | |
库存 | inventory | 整型 | 非空 | 默认为0 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.8. 商品订单表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
订单编号 | order_id | 长整型 | 非空 | 主键,唯一。提交订单时系统自动生成。16 位数字,从 1 开始,不够十六位使用前导 0 补足 |
用户编号 | user_id | 整型 | 非空 | 外键 |
店铺编号 | shop_id | 整型 | 外键 | |
订单状态 | order_status | 枚举类型 | 非空 | 待付款,待发货,待收货,待评价,已完成,已取消,默认待付款 |
运单号 | tracking_number | 字符型(12位) | 用户下单时为空,商家发货时必须填写运单号。12 位纯数字。 | |
支付方式 | pay_method | 可变长字符型(16位) | 枚举。货到付款/在线支付 | |
下单时间 | order_time | 时间类型 | 非空 | 精确到秒 |
完成时间 | complete_time | 时间类型 | ||
备注 | annotation | 可变字符型(100位) | 不超过 30 个字符 | |
总金额 | total | double | ||
收货人编号 | receiver_id | 整型 | 非空 | 收货信息 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.9. 订单中商品表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
订单编号 | order_id | 长整型 | 非空 | 主键 |
属性编号 | attribute_id | 整型 | 非空 | 主键 |
商品编号 | goods_id | 整型 | 非空 | |
商品数量 | goods_num | 整型 | 非空 | |
交易时成本 | cost | double | 非空 | 用户不可见 |
成交价 | actual_price | double | 非空 | |
评价内容 | comment | 可变字符型(300位) | 不超过 100 个汉字 | |
评价分值 | evaluate_score | 短整型 | 0~5,5个评分等级 | |
评价时间 | evaluate_time | 时间类型 |
4.10. 收货人表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
收货人编号 | receiver_id | 整型 | 非空 | 主键,从1开始自增 |
用户编号 | user_id | 整型 | 非空 | 外键 |
收货人姓名 | name | 可变字符型(30位) | 非空 | 由中文、英文字母组成,不能含有其他字符。 |
收货地址 | address | 可变字符型(150位) | 非空 | |
手机号 | phone | 字符型(11位) | 非空 | |
已使用次数 | used_times | 整型 | 非空 | 用户不可见,默认为0 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.11. 收藏店铺表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
收藏编号 | id | 长整型 | 非空 | 主键,从1开始自增 |
店铺编号 | shop_id | 整型 | 非空 | 外键 |
用户编号 | user_id | 整型 | 非空 | 外键 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.12. 收藏商品表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
收藏编号 | id | 长整型 | 非空 | 主键,从1开始自增 |
商品编号 | goods_id | 整型 | 非空 | 外键 |
用户编号 | user_id | 整型 | 非空 | 外键 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.13. 购物车表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
购物车记录编号 | id | 长整型 | 非空 | 主键,从1开始自增 |
用户编号 | user_id | 整型 | 非空 | |
属性编号 | attribute_id | 整型 | 非空 | |
商品编号 | goods_id | 整型 | 非空 | |
商品数量 | goods_num | 整型 | 非空 | 大于等于 1, 当用户删除商品时,将 is_valid 改为 false,而不将商品数量减为 0 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
4.14. 分类表
列名 | 英文名 | 数据类型(精度范围) | 空/非空 | 说明 |
---|---|---|---|---|
分类编号 | category_id | 整型 | 非空 | 主键,从1开始自增 |
一级分类 | level_one | 可变字符型(30位) | 非空 | 大分类 |
二级分类 | level_two | 可变字符型(30位) | 非空 | 细分 |
状态 | is_valid | 布尔型 | 非空 | 默认为true |
5. 安全性设计
提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。
5.1. 防止用户直接操作数据库的方法
一般用户只能用帐号登陆到网站或APP,通过网站或APP访问数据库,而没有其它途径操作数据库。
5.2. 用户帐号密码的加密方法
尝试对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。
5.3. 角色与权限
如无特别说明,只有管理员可以查看各表的编号。
商家同时具有用户的所有权限。
角色 | 可以访问的表与列 | 操作权限 |
---|---|---|
游客 | 商品表所有列 | 检索 |
分类表所有列 | 检索 | |
商品属性表:除了进价 | 检索 | |
店铺表所有列 | 检索 | |
商家 | 商品表所有列 | 更新 |
店铺表所有列 | 更新 | |
商品属性表所有列 | 更新 | |
商品订单表:总金额,运单号 | 更新 | |
管理员 | 收货人表所有列 | 检索 |
收藏店铺表所有列 | 检索 | |
收藏商品表所有列 | 检索 | |
购物车表所有列 | 检索 | |
商品订单表所有列 | 更新 | |
订单中商品表所有列 | 更新 | |
商品表所有列 | 更新 | |
管理员所有列 | 更新 | |
事务表所有列 | 更新 | |
店铺表所有列 | 更新 | |
用户表所有列 | 更新 | |
商品属性表所有列 | 更新 | |
分类表所有列 | 更新 |
数据用户的创建已加入
./create_reset_db.sql
文件中。
6. 优化
6.1. 触发器
-
商家删除商品。当
goods::is_valid
被标记为false
时,自动设置其他表中相应记录: -
favorite_goods::is_valid = false
-
goods_attribute::is_valid = false
-
goods_image::is_valid = false
-
favorite_goods::is_valid = false
-
商品评价。 当
goods_in_order::evaluate_score
更新,自动设置其他表中相应记录: -
shop::evaluate_sum += goods_in_order::evaluate_score
-
shop::evaluate_number += 1
-
goods_in_order::evaluate_time = now()
-
店铺申请处理。当
transaction::transaction_status
更新且transaction::transaction_type
为申请开店
,自动设置其他表中相应记录: -
shop::apply_status 标记为 '已通过', 当 transaction_status 变为'已通过'
-
shop::apply_status 标记为 '未通过', 当 transaction_status 变为'已拒绝'
-
注销用户。当
user::is_valid
被标记为 'false' 时,自动设置其他表中相应记录: -
transaction::is_valid = false
-
receiver::is_valid = false
-
shop::is_valid = false
-
goods_order::is_valid = false
-
shopping_cart::is_valid = false
-
favorite_shops::is_valid = false
-
favorite_goods::is_valid = false
-
注销商店。当
shop::is_valid
被标记为 'false' 时,自动设置其他表中相应记录: -
goods::is_valid = false
-
goods_order::is_valid = false
-
favorite_shops::is_valid = false
-
支付定单后自动销量增加、库存减少。当
goods_order::order_status
从待付款
更新为待发货
时,自动设置其他表中相应记录。 -
goods_attribute::inventory
减去 订单中商品数量-
goods::sales
加上 订单中商品数量
-
-
receiver::used_times
自增
7. 数据库管理与维护说明
不提供数据库管理与维护。
七.、用户非功能需求
5.1. 性能要求
系统响应时间在可接受范围内。
5.2. 输入输出要求
- 所有用户要求有良好的操作界面。
- 商家和管理员要求良好的报表生成。
5.3. 故障处理要求
应能够提供相应的故障处理能力,保证系统正常运行。
参考文献
- 基于JSP的网络购物系统分析设计与实现(电子科技大学·杨青)
- 基于SSM框架的B2C网上商城系统的设计与实现(湖南大学·陈峰)
- 电子产品网络购物系统的设计与实现(电子科技大学·李睿)
- 基于Java的网上购物系统的设计与开发(南昌航空大学·朱成)
- 基于Java的网上购物系统的设计与开发(南昌航空大学·朱成)
- 基于PHP和MySQL的网上购物系统设计与实现(电子科技大学·李华明)
- 基于SSM框架的B2C网上商城系统的设计与实现(湖南大学·陈峰)
- 电子商务平台—购物网站的设计与实现(山东大学·彭向峰)
- 基于.NET的网上购物系统的设计与实现(电子科技大学·朱照坤)
- 基于JSP的网上购物系统的实现(山东大学·武珺)
- 积分商城的设计与实现(北京邮电大学·王威)
- 基于Java的网上购物系统的设计与开发(南昌航空大学·朱成)
- 基于J2EE的在线购物网站设计与实现(江西农业大学·夏超)
- 电子商务系统的设计与实现(吉林大学·刘莹)
- 基于JavaEE架构的网上购物系统的设计与实现(河北工业大学·李国娟)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码导航 ,原文地址:https://bishedaima.com/yuanma/35758.html