Chapter1 概述
1.1 背景
设计一个快递管理系统,要求将快递点作为沟通买家与卖家的桥梁。当买家看中卖家的某商品后,进行购买;支付成功后,卖家收集买家的位置信息,通过快递将商品运输到快递点;到达快递点后,快递点将把已到货的消息发送给买家,买家去往相应的快递点取自己所购买的商品,并在确认无误下确认收货;收货成功后,还可以进行评价、退货、换货等。
1.2 系统开发的可行性判断
经济可行性:所用的开发工具和软件是免费的,节省了经济成本;
技术可行性:MySQL数据库是一个开放源码的小型、跨平台数据库管理系统(DBMS),被广泛地应用在Internet上的中小型网站中,它是由MySQL AB公司开发、发布并支持;
法律可行性:使用的是免费的软件与开发工具,合法合规;
方案可行性:快递管理系统是通过快递点将买卖双方关联起来,两两相关,环环相扣,可行性较高。
1.3 目标
本系统主要完成了买家购买商品,卖家寄出商品,快递点接收商品,以及买家收货后评价退换货的增删改查,卖家对商品种类、价格、折扣的增删改查,快递点所接收的快递公司的增删改查等功能。
快递管理系统主要有五个表,分别为卖家信息表、卖家信息表、商品信息表、快递信息表、售后评价表。
本系统的使用者有卖家、买家、快递点,不同使用者有不同的职责和权限,卖家提供折扣、售后服务,买家不能自行修改商品价格,快递点不能改变商品的信息等。
总之,是通过快递点将买卖双方联系起来,推动线上经济更好的发展,使用合法且免费的软件开发。
1.4 软件
MySQL是一个开放源码的小型、跨平台数据库管理系统(DBMS),被广泛地应用在Internet上的中小型网站中,它是由MySQL AB公司开发、发布并支持。目前MySQL和Oracle数据库一样,都属于甲骨文公司。由于其具有体积小、运行速度快、总体拥有成本低、开放源码的优势,许多中小型网站都为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1.5 开发环境
本实验用的是MySQL 5.6版本,Windows10。
Chapter2 需求分析
2.1 信息要求
快递管理系统方便了买卖双方且在一定程度上推动了线上经济的发展,所以快递管理系统不但要为卖家提供充足的信息和快捷的查询手段,也要为买家查询购买提供必要和快捷的查询手段,还要为快递点查询寄入寄出到货取货的信息提供快捷高效的查询手段。
数据字典的开发
1. 数据项
数据项的描述={数据项名称,别名,描述,数据类型及取值长度,取值范围,取值含义,存储处}
例如:“商品编号”的数据项
① 数据项名称:商品编号
② 别名:g_num
③ 描述:商品编号商品信息表的主码,不同店铺的商品都有唯一的商品编码。
④ 数据类型及取值长度:varchar(20)。
⑤ 取值范围:1~20个数字字符与字母字符。
⑥ 取值含义:店铺信息,商品信息,商品编码,如“swmbyg001”的含义是狮王官方旗舰店的美白牙膏,牙膏编号001。
⑦ 存储处:商品信息表commodity。
2. 数据结构
数据结构的描述={数据结构名称,描述,数据结构组成,其他说明}
例如,“快递站信息表”数据结构的定义如下:
① 数据结构名称:快递站信息表express_station。
② 描述:包括商品收发快递站的信息。
③ 数据结构组成:快递名称+快递员电话+快递员姓名+快递员工号。
④ 其他说明:在系统功能扩充时可能增加定义项。
3. 数据存储
数据存储的描述={数据库存储名称,描述,数据存储组成,主码,相关联的处理}
例如,“商品价格”数据存储定义如下:
① 数据存储名称:商品价格。
② 描述:存放某商品的价格。
③ 数据存储组成:某商品的价格,由商品编号+商品名称+商品价格+商品属性+折扣组成。
④ 主码:商品编号,商品名称。
2.2 处理要求
1.卖家信息sellers表的管理: 能够储存一定数量的卖家信息,记录卖家所提供的商品信息,实现对卖家基本信息的增、删、改、查。
2.买家信息buyers表的管理: 能够记录一定数量的买家信息,实现对买家购买商品以及是否确认购买,是否确认收货进行记录,让卖家知道买家已经收到货,对相关信息进行增、删、改、查。
3.商品信息commodity表的管理: 能够储存一定数量不同卖家的商品信息,实现对商品信息的增、删、查、改。
4.快递站信息express_station表的管理: 记录一定数量的快递收发情况,实现对快递收发信息的处理,当买家收货成功后,将收货成功的信息传递给卖家。实现快递收发信息的增、删、改、查。
5.售后评价after_market_evaluate表的管理: 这是在买家确认收货后,对商品的满意度进行评估,评价,退换货情况的增、删、查、改。
2.3 安全性与完整性要求
安全性: 买家、卖家、快递站信息都是安全的,不会泄露个人信息,设置一定的权限,防止数据被删除,被修改。
完整性: 输入的数据要合法,完整,有效,否则会出错,系统予以相应的提示,可以通过触发器实现。
Chapter3 概念结构设计
3.1 局部E-R图
3.2.全局E-R图
Chapter4 逻辑结构设计
4.1 关系模式
-
卖家(店铺名称,店铺地址,商品名称)
-
买家(买家姓名,买家电话,买家地址,购买商品编号,确认收货)
-
快递站(快递名称,快递员电话,快递员姓名,快递员工号)
-
商品(商品编号,商品名称,商品价格,商品属性,折扣)
-
售后评价(买家电话,商品编号,商品名称,评价,退货,换货)
注:有下划线的是主键,加粗的是外键。
4.2 设计数据表
1.卖家信息表:sellers
列名 | 数据类型 | 默认值 | 主键? | 非空? |
---|---|---|---|---|
店铺名称 | varchar(20) | 无 | 是 | 是 |
店铺地址 | varchar(20) | 无 | 否 | 是 |
商品名称 | varchar(50) | 无 | 否 | 是 |
2.买家信息表:buyers
列名 | 数据类型 | 默认值 | 主键? | 非空? |
---|---|---|---|---|
买家姓名 | varchar(20) | 无 | 否 | 是 |
买家电话 | varchar(11) | 无 | 是 | 是 |
卖家地址 | varchar(20) | 无 | 否 | 是 |
购买商品编号 | varchar(20) | 无 | 是 | 是 |
确认收货 | varchar(20) | 无 | 否 | 是 |
3.快递点信息表:express_station
列名 | 数据类型 | 默认值 | 主键? | 非空? |
---|---|---|---|---|
快递名称 | varchar(20) | 无 | 否 | 是 |
快递员电话 | varchar(11) | 无 | 否 | 是 |
快递员姓名 | varchar(20) | 无 | 否 | 是 |
快递员工号 | varchar(10) | 无 | 是 | 是 |
4.商品信息表:commodity
列名 | 数据类型 | 默认值 | 主键? | 非空? |
---|---|---|---|---|
商品编号 | varchar(20) | 无 | 是 | 是 |
商品名称 | varchar(20) | 无 | 是 | 是 |
商品价格 | float | 无 | 否 | 是 |
商品属性 | varchar(20) | 无 | 否 | 是 |
折扣 | float | 1 | 否 | 否 |
5.售后评价表:after_market_evaluate
列名 | 数据类型 | 默认值 | 主键? | 非空? | 注释 |
---|---|---|---|---|---|
商品编号 | varchar(20) | 无 | 是 | 是 | 无 |
商品名称 | varchar(20) | 无 | 否 | 是 | 无 |
评价 | int(10) | 0 | 否 | 否 | 1为已评价,0为未评价 |
退货 | int(10) | 0 | 否 | 否 | 1为已评价,0为未评价 |
换货 | int(10) | 0 | 否 | 否 | 1为已评价,0为未评价 |
买家电话 | varchar(11) | 无 | 是 | 是 | 无 |
Chapter5 快递管理系统的实现
5.1 数据表的创建与完整性约束
5.1.1 数据表的创建
1.卖家信息表sellers
CREATE TABLE sellers (
店铺名称 varchar(20) NOT NULL,
店铺地址 varchar(20) NOT NULL,
商品名称 varchar(50) NOT NULL,
#PRIMARY KEY (店铺名称)
) ENGINE=InnoDB;
2.买家信息表buyers
CREATE TABLE buyers (
买家姓名 varchar(20) NOT NULL,
买家电话 varchar(11) NOT NULL,
买家地址 varchar(20) NOT NULL,
购买商品编号 varchar(20) NOT NULL,
确认收货 tinyint(10) NOT NULL,
PRIMARY KEY (买家电话,购买商品编号)
) ENGINE=InnoDB;
3.快递站信息表express_station
Create Table CREATE TABLE express_station (
快递名称 varchar(20) NOT NULL,
快递员电话 varchar(11) NOT NULL,
快递员姓名 varchar(20) DEFAULT NULL,
快递员工号 varchar(10) NOT NULL,
PRIMARY KEY (快递员工号)
) ENGINE=InnoDB;
4.商品信息表commodity
CREATE TABLE commodity (
商品编号 varchar(20) NOT NULL,
商品名称 varchar(20