声明:此次课设为本人专业课课设报告内容,仅供参考,不要照搬
1 问题的提出
随着互联网发展与电子商务普及,网上花店兴起,其突破地域限制、提供便捷购物体验且市场呈快速增长趋势。该系统需具备多方面功能以满足花店运营及服务客户等需求。网上花店的现状如下:
- 花店中花朵种类多样,每天出售不同品种、不同数量的花朵。
- 对于每个品种的花朵的基本信息包括:花卉 ID、花卉类别、花卉名称、单位价格、进货日期、花卉数量等信息。
- 花朵的售卖方式分为单支自由搭配(按照每支单价总和计算)和花束(按照套餐进行搭配,包含打包等费用,花束价格固定)。
- 存储的客户的基本信息包括:客户 ID,客户姓名,地址,联系电话,客户可以按需购买需要花朵以及进行售后赔付操作,客户可以对订单进行评价打分。
- 客户拥有自己的收货地址本,可以设置多个不同的收货地址(包含国家省份城市以及详细地址、邮政编码等)以及收货人的联系方式、姓名等。
- 有多个供应商为花店供货,同一种花可以来自不同的供应商,每个供应商可以提供多种花朵。
- 花店人员分为经营者和员工,员工主要处理花店事务,经营者盘点管理。
拟开发的系统要求如下:
- 花卉信息管理:输入花卉 ID、花卉类别、花卉名称、单位价格、进货日期、初始库存量等信息。支持修改以及更新花卉的价格、库存量等下架不再销售的花卉。
- 供应商管理:记录供应商信息更新供应商的联系信息,移除不再合作的供应商,记录每种花卉的供应商信息,支持多供应商供应同一种花卉。
- 客户管理:录入客户个人信息查看客户的购买记录。管理客户的收货地址有电话号码及收获地址等,客户能便捷地新增、编辑、删除收货地址,设置默认地址。
- 订单管理:生成订单和订单状态管理,支持订单状态变更,按条件搜索订单。发起售后请求和处理,员工处理售后赔付,客户可以对订单进行评价以及管理。
- 库存管理实现货物存储信息的录入,支持动态管理商品的入库和出库。
- 设计一完整的数据库。要求掌握数据库的设计的每个步骤;掌握数据设计各阶 段的输入、输出、设计环境、目标和方法;熟练的使用 SQL 语言实现数据库以 及数据库重要对象的建立、应用和维护。
2 可行性分析
2.1 技术可行性
上述网上花店销售管理系统通过简洁的界面操作实现对数据的增删改查,完成花店中花卉、客户、订单等相关信息的管理以及销售工作。利用 SQL 语言的混合编程实现对数据库的遍历和数据提取,通过 java 编程在界面上展示数据。
- 网站或应用开发:
- 界面操作:通过java编程以及前端相关框架,可以实现简单直观的用户界面,支持对数据的增删改查操作。评估搭建网站或移动应用程序所需的技术栈和开发资源。
- 在线支付系统:集成支付宝、微信支付等主流支付平台,确保支付过程的安全和便捷。
- 数据库管理:
- 设计和实施有效的数据库管理系统,用于存储和管理订单、客户信息和产品库存 等数据,可以实现基本的增删改查,确保信息的更改以及及时更新,使用SQL语言进行数据库操作,通过Java编程语言在后端实现数据的提取和展示,确保数据操作的高效性和安全性。
- 考虑数据备份和恢复机制,确保数据的安全性和可靠性。
- 用户界面:
- 友好性和导航:设计简洁明了的用户界面,确保用户能够快速找到所需功能。
- 多语言支持:通过国际化(i18n)技术,支持多种语言版本,满足不同地区用户的需求。
2.2 经济可行性
随着信息技术的发展和开源软件的广泛应用,网上花店销售管理系统的开发成本能够得到有效控制。在开发过程中,主要成本集中在人力成本方面,包括系统设计、编程、测试等环节。由于系统功能模块相对清晰,对于技术人员的要求并非极高,所以开发周期相对较短,人力成本在可接受范围内。
对于实现基本功能而言,如商品管理(花卉信息管理、供应商管理)、客户管理(注册登录、信息查询与修改)、订单管理(生成、状态更新、赔付处理)、库存管理(更新与预警)以及简单的数据分析功能,所需要的硬件设备成本较低,仅需普通的服务器或云服务资源即可满足小型花店日常运营的数据存储和处理需求。
这种低成本的开发模式尤其适合小型花店。小型花店在经营过程中通常资金相对有限,对于销售管理系统的投入预算不高。而本系统能够满足其基本功能需求,包括花卉商品的展示与销售、客户订单的处理、库存的合理管控等,帮助花店在不增加过多成本的情况下提升运营效率。
从长期运营角度来看,系统投入使用后的运营成本主要包括服务器维护费用、网络费用等,这些成本相对较低。维护成本方面,由于系统架构设计简洁,在出现问题时易于排查和修复,进一步降低了维护成本。
即使在系统功能进一步拓展和复杂化的情况下,例如增加更深入的数据分析模块、更复杂的客户关系管理功能等,通过合理的成本控制和收益分析,开发成本、运营成本和维护成本与系统所带来的资产收益相比,利润仍能保持在较高水平。例如,通过精准的数据分析指导花卉采购和营销活动,可提高销售额;通过优化客户管理增加客户忠诚度,促进重复购买,从而提升整体收益。
2.3 操作可行性
- 系统兼容性
- 操作系统:该网上花店销售系统在Windows 10和11系统下进行开发和运行,系统目前已经非常普及,用户在这些系统下可以方便地进行各种操作,实现预期目的。
- 浏览器兼容性:确保系统在主流浏览器(如Chrome、Firefox、Safari、Edge)下正常运行,提供一致的用户体验
2.用户培训和支持
为员工提供详细的使用手册,确保他们能够熟练使用系统。该系统简单易上手,可以很快的完成相关的学习以及操作简单,维护简单。系统本身具有简单易上手的特点。其用户界面设计简洁明了,操作流程遵循直观的逻辑。
3 需求分析
3.1 数据需求
网上花店销售管理系统的数据需求主要如下:
- 客户信息的输入、查询与修改、删除:能够接收修改、查询、删除客户的信息,包括用户ID、用户名、地址、联系电话、性别等,并将其保存至数据库中。
- 客户的地址本管理与修改:客户可以设置多个收货人,电话号码及收获地址等,可以添加备注信息以及自行管理,选择不同的地址进行下单管理。地址本管理界面应具备排序功能,方便客户根据使用频率等因素对地址进行排序,同时支持批量删除和编辑功能。
- 花卉信息的输入、查询与修改、修改:花卉信息,包括花卉ID、名称、类别、单位价格、初始库存量、花语等。员工可以进行增删改查,客户可以查看。
- 库存信息的输入、查询与修改:记录每批花卉的进货详情,包括花卉ID、名称、供应商ID、库存数量、供货时间、供货记录号等。修改库存数量时,除了手动调整外,系统应支持根据实际销售、损耗、退货等情况自动更新库存,并记录库存调整的触发原因(如订单发货)。
- 订单信息的输入:支持订单的创建,记录订单ID、用户ID、购买商品清单(include表)、收货地址、总金额、下单日期、支付状态、订单状态等信息。
- 订单信息的查询与修改:系统应当允许员工查询订单详情,并根据订单的实际处理情况进行状态更新,修改订单ID、用户ID、购买商品清单、收货地址、总金额、下单日期、支付状态、订单状态等信息。
- 员工信息的生成与管理:包括创建客户信息、删除客户信息、添加订单信息、删除订单信息、添加花卉信息、删除花卉信息、添加进货信息、删除进货信息。
- 员工信息的操作记录:系统应当记录员工的所有操作,包括但不限于创建客户信息、删除客户信息、添加订单信息、删除订单信息、添加花卉信息、删除花卉信息、添加进货信息、删除进货信息等。
- 经营者管理:包括创建员工用户信息、删除员工用户信息、统计花卉库存、统计利润、统计订单情况、统计赔付金额等。
3.2 功能需求
网上花店销售管理系统的功能需求主要涵盖以下几个方面:
- 客户信息管理
- 可以查询客户信息;
- 添加新客户或删除不再活跃的客户,对客户信息进行添加及删除、修改的操作。
- 花卉信息管理
- 浏览:提供列表视图,展示所有花卉的基本信息。
- 添加与删除:提供表单,管理员可以添加新的花卉信息或删除不再销售的花卉。
- 订单信息管理
- 浏览:提供列表视图,展示所有订单的状态和详情。
- 添加与删除:员工应能手动添加测试订单或删除错误订单。
- 状态更新:员工根据订单的实际进展更新订单状态。
- 查询:提供搜索框,可以根据订单ID、客户ID等条件查询支付信息。
- 员工信息管理
- 显示与查询:提供列表视图,展示所有员工的信息。
- 维护操作:允许经营者添加新员工或删除离职员工。
- 操作记录查询:允许经营者查看员工的操作记录,包括操作类型、时间、对象等。
- 售后赔付信息管理
- 浏览:提供列表视图,展示所有售后的详细信息。
- 查询:提供搜索框,可以根据售后单ID、订单ID等条件查询订单售后信息。
- 促销活动信息管理
- 显示与查询:提供列表视图,展示所有促销活动的信息。增删改查操作。
- 地址本管理
- 显示与查询:提供列表视图,展示客户的地址本信息。增删改查。
- 订单评价管理
- 显示与查询:提供列表视图,展示订单的的评价信息。增删改查。
- 供货信息管理
- 显示与查询:提供列表视图,展示供货信息的的信详细介绍。增删改查。进行供货管理等。
3.3 数据流图(DFD)
通过对网上花店管理销售系统需求的调查分析,细化软件功能,把网上花店管理销售系统划分为订单处理、支付处理、退货处理、库存管理、系统这几个主要模块,明确每个模块所要完的主要逻辑功能,采用以图形的方式描绘数据在系统中流动和处理。涉及客户、员工、经营者、供应商、物流公司这几个实体,包含客户信息、花卉信息、订单信息、员工信息、库存信息、订单发货信息、售后信息等信息。
图1-1顶层数据流图
图1-2 第一层数据流图(整个系统)
图1-3 第二层数据流图(细化“订单处理”处理)
图1-4 第二层数据流图(细化“售后处理”处理)
图1-5 第二层数据流图(细化“进货管理”处理)
图1-6 第二层数据流图(细化“盘点管理”处理)
3.4 数据字典
为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供有关元素一致性定义和详细的描述:
- 数据流字典
数据流名称:浏览花卉信息 别名:无 来源:花卉数据 去向:客户 数据组成:花卉 ID|花卉名称|单支价格|花卉数量|花语|花束价格|花卉分类ID|分类名称 |
数据流名称:订单处理 |
数据流名称:售后处理 |
数据流名称:进货管理 |
数据流名称:客户下单 |
数据流名称:客户支付 |
数据流名称:查看订单 |
数据流名称:申请售后 |
数据流名称:协调赔付 |
数据流名称:完成售后 |
数据流名称:供应货物 |
数据流名称:获取订单状态 别名:无 来源:供应商 去向:库存信息 数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 订单编号 | 订单状态 | 处理日期 |
数据流名称:统计订单: 别名:无 来源:订单信息 去向:经营者 数据组成:订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价 | 支付金额 | 支付方式 | 支付日期 |
数据流名称:统计用户: 别名:无 来源:客户信息 去向:经营者 数据组成:客户 ID | 客户姓名 | 客户联系方式 | 注册日期 | 消费次数 | 消费金额 |
数据流名称:计算赔付 |
数据流名称:库存清点 别名:无 来源:库存信息 去向:经营者 数据组成:库存编号 | 库存名称 | 库存数量 | 盘点日期 | 盘点人员 |
- 数据存储字典
数据存储名称:客户信息 | 标志符:D1 |
数据存储名称:花卉数据 描述:花卉的详细资料 涉及处理:P1、P2、P3 、P4及下一层细化的处理 数据组成:花卉 ID|花卉名称|单支价格|花卉数量|花语|花束价格|花卉分类ID|分类名称 | 标志符:D2 |
数据存储名称:订单信息 | 标志符:D3 |
数据存储名称:售后信息 | 标志符:D4 |
数据存储名称:库存信息 | 标志符:D5 |
数据存储名称:供应商信息 描述:花卉供应商的相关资料信息 涉及处理:进货管理、供应货物、录入货物入库信息、获取订单状态、货物出库、修改订单信息等及下一层细化的处理 数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 标志符:D6 |
数据存储名称:员工信息 | 标志符:D7 |
- 数据处理字典
数据处理名称:订单处理 处理定义:处理订单 激发条件:客户发出下单请求 输入:客户的订单要求 输出:D3 订单数据信息 | 标志符:P1 |
数据处理名称:售后处理 | 标志符:P2 |
数据处理名称:进货管理 | 标志符:P3 |
数据处理名称:盘点管理 | 标志符:P4 |
数据处理名称:客户下单 | 标志符:P1.3 |
数据处理名称:客户支付 | 标志符:P1.4 |
数据处理名称:查看订单 | 标志符:P1.5 |
数据处理名称:申请售后 | 标志符:P2.1 |
数据处理名称:协调赔付 输出:D4 售后数据信息 | 标志符:P2.2 |
数据处理名称:完成售后 | 标志符:P2.3 |
数据处理名称:供应货物 处理定义:供应商供应花卉货物 激发条件:供应商送货 输入:供应商货物详情 输出:D5 库存数据信息 | 标志符:P3.1 |
数据处理名称:录入货物入库信息 | 标志符:P3.2 |
数据处理名称:获取订单状态 | 标志符:P3.3 |
数据处理名称:货物出库 处理定义:处理花卉货物出库情况 激发条件:订单发货或其他出库需求 输入:出库订单信息 输出:D5 库存数据信息 | 标志符:P3.4 |
数据处理名称:修改订单信息 | 标志符:P3.5 |
数据处理名称:统计用户 | 标志符:P4.2 |
数据处理名称:统计订单 | 标志符:P4.1 |
数据处理名称:计算赔付 | 标志符:P4.4 |
4 数据库设计
4.1 概念设计
根据需求分析的结果,本系统的概念模型分析如下:
1.实体(9个):
花卉分类(FlowerCategory)
客户 (Customer)
收货地址(address)
花卉(Flower)
供应商(Suppliers)
订单(Order)
促销活动(promotion)
售后(aftersales)
2.实体之间的关系
客户 - 收货地址 (1:n):一个客户可以有多个收货地址,一个收货地址只能属于一个客户。
客户 - 订单 (1:n):一个客户可以下多个订单,一个订单只能属于一个客户。
客户 - 售后 (1:n):一个客户可以有多个售后申请,一个售后申请只能属于一个客户。
客户 - 促销活动 (n:n):一个客户可以参与多个促销活动,一个促销活动可以有多个客户参与。
花卉 - 花卉分类 (n:1):一种花卉只能属于一个花卉分类,一个花卉分类可以包含多种花卉。
花卉 - 供应商 (n:1):一种花卉由一个供应商供应,一个供应商可以供应多种花卉。联系属性:供货单编号,供货数量,供货日期等。
花卉 - 订单 (n:n):一种花卉可以出现在多个订单中,一个订单可以包含多种花卉。联系属性:花卉数量(Integer)、折后单价(Money)等。
订单 - 促销活动 (n:n):一个订单可以参与多个促销活动,一个促销活动可以应用于多个订单。联系属性:优惠金额(Money)等。
订单 - 售后 (n:n):一个订单可能产生多个售后,一个售后对应一个订单。
3.在Powerdesigner中建立系统的概念模型,如图4-1所示CDM图
图4-1 网上花店管理销售的概念模型
4.在Powerdesigner中建立系统的物理模型,如图4-2所示PDM图
图4-2 网上花店管理销售的物理模型
4.2 逻辑设计
4.2.1 表结构
图4-3 网上花店销售管理系统的逻辑模型
具体每个表(11个表)的结构如下列表格所示:
表 4-1 FlowerCategory(花卉分类)的结构
表中列名 | 数据类型 | 可否为空\主|外 键 | 约束\索引\默认 值 | 说明 |
CategoryID | int | not null(主键) | 聚集索引,递增序列 | 花卉分类 ID |
Ca_name(花卉分类名称) | varchar(10) | null | 花卉分类名称 |
表 4-2 Suppliers(供应商)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
S_ID(供应商 ID) | int | not null(主键) | 聚集索引,递增序列 | 供应商 ID |
S_address(供应商地址) | varchar(40) | null | 供应商地址 | |
S_tele(供应商联系电话) | char(11) | null | 供应商联系电话 |
表 4-3 客户(Customer)表的结构
表中列名 | 数据类型 | 可否为空\主|外 键 | 约束\索引\默认 值 | 说明 |
C_ID | int | not null(主键) | 聚集索引,递增序列 | 用户 ID |
Co_name | varchar(20) | not null | 用户名 | |
C_address | varchar(40) | not null | 用户地址 | |
C_tele | Char(11) | not null | 联系电话 |
表 4-4 Flower(花卉)表的结构
表中列名 | 数据类型 | 可否为空\主|外 键 | 约束\索引\默认 值 | 说明 |
F_ID(花卉 ID) | int | not null(主键) | 聚集索引,递增序列 | 花卉 ID |
CategoryID(花卉分类 ID) | int | Null(FK_FLOWER_分类_FLOWERCA(外键) | 花卉分类 ID | |
F_name(花卉名称) | varchar(20) | null | 花卉名称 | |
F_money1(花卉单价) | money | null | 花卉单价 | |
F_number(花卉库存) | int | null | 花卉库存 | |
F_word(花语) | varchar(40) | null | 花语 |
表 4-5 aftersales(售后)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
as_code(售后单号) | int | not null(主键) | 聚集索引,递增序列 | 售后单号 |
O_ID(订单 ID) | int | Null:FK_AFTERSAL_RELATIONS_ORDER(外键,关联 "Order" 表的 O_ID) | 订单 ID | |
as_money(售后赔付金额) | money | null | 售后赔付金额 | |
as_date(售后日期) | datetime | null | 售后日期 |
表 4-6 "Order"(订单)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
O_ID(订单 ID) | int | not null(主键) | 聚集索引,递增序列 | 订单 ID |
C_ID(用户 ID) | int | Null:FK_ORDER_下单_CUSTOMER(外键,关联 Customer 表的 C_ID) | 用户 ID | |
a_ID(地址 ID) | int | Null FK_ORDER_ADDRESS_ADDRESS外键,关联关联 address 表的 a_ID 字段 | 地址ID | |
O_money(总价钱) | money | null | 默认为0 | 总价钱 |
O_data(下单日期) | datetime | null | 默认为系统日期 | 下单日期 |
O_ming(支付状态) | varchar(10) | null | 支付状态 | |
O_oing(订单状态) | varchar(10) | null | 订单状态 | |
O_num(总数量) | int | null | 默认为0 | 总数量 |
O_other(订单备注) | varchar(50) | null | 订单备注 | |
O_kind(支付方式) | varchar(15) | null | 支付方式 |
表 4-7 address(收货地址相关)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
a_ID(地址 ID) | int | not null(主键) | 聚集索引,递增序列 | 地址 ID |
C_ID(用户 ID) | int | Null:FK_ADDRESS_拥有_CUSTOMER(外键,关联 Customer 表的 C_ID) | 用户 ID | |
a_detail(详细地址) | varchar(50) | null | 详细地址 | |
a_code(邮政编码) | varchar(10) | null | 邮政编码 | |
a_city(城市) | varchar(20) | null | 城市 | |
a_prev(省份) | varchar(15) | null | 省份 | |
a_con(国家) | varchar(15) | null | 国家 | |
a_name(姓名) | varchar(20) | null | 姓名 | |
a_tell(电话相关) | char(11) | null | 电话 |
表 4-8 evalute(评价)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
C_ID(用户 ID) | int | not null:FK_EVALUTE_EVALUTE_CUSTOMER(外键,关联 Customer 表的 C_ID) | 用户 ID | |
O_ID(订单 ID) | int | not null:FK_EVALUTE_EVALUTE2_ORDER(外键,关联 "Order" 表的 O_ID) | 订单 ID | |
e_ID(评价 ID) | int | not null(主键) | 聚集索引,递增序列 | 评价 ID |
e_score(评分) | int | null | 评分 | |
e_content(评价内容) | varchar(100) | null | 评价内容 |
表 4-9 include(订单包含花卉详情)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
F_ID(花卉 ID) | int | not null\FK_INCLUDE_包含_FLOWER(外键,关联 Flower 表的 F_ID) | 主键(与 O_ID 组合成联合主键) | 花卉 ID |
O_ID(订单 ID) | int | not null\FK_INCLUDE_包含 2_ORDER(外键,关联 "Order" 表的 O_ID) | 主键(与 F_ID 组合成联合主键) | 订单 ID |
F_number1(花卉数量) | int | null | 花卉数量 | |
F_money(折后价格) | money | null | 折后价格 |
表 4-10 promotion(促销活动)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
pro_ID(促销活动 ID) | int | not null(主键) | 聚集索引,递增序列 | 促销活动 ID |
CategoryID(花卉分类 ID) | int | Null\FK_PROMOTIO_折扣_FLOWERCA(外键,关联 FlowerCategory 表的 CategoryID) | 花卉分类 ID | |
pro_name(促销活动名称) | varchar(20) | null | 促销活动名称 | |
pro_st(促销活动开始时间) | datetime | null | 促销活动开始时间 | |
pro_et(促销活动结束时间) | datetime | null | 促销活动结束时间 | |
pro_mess(促销活动信息) | varchar(50) | null | 促销活动信息 | |
pro_sale(促销折扣) | float(2) | null | 促销折扣 |
表 4-11 supply(供货)的结构
表中列名 | 数据类型 | 可否为 空 \主 | 外键 | 约束 \索引\默 认值 | 说明 |
F_ID(花卉 ID) | int | not null\FK_SUPPLY_供货_FLOWER(外键,关联 Flower 表的 F_ID) | 花卉 ID | |
S_ID(供应商 ID) | int | not null\FK_SUPPLY_供货 2_SUPPLIER(外键,关联 Suppliers 表的 S_ID) | 供应商 ID | |
P_cno(供货编号) | int | not null(主键) | 聚集索引,递增序列 | 供货编号 |
P_num(供货数量) | int | null | 供货数量 | |
P_data(供货日期) | datetime | null | 默认为系统日期 | 供货日期 |
4.2.2 关系图
图 4-3 SQL Server 中的关系图
声明:此次课设为本人专业课课设报告内容,仅供参考,不要照搬,剩余部分内容见下一篇文章