当前位置: 首页 > news >正文

数据库课设——网上花店销售管理系统(上)

声明:此次课设为本人专业课课设报告内容,仅供参考,不要照搬

1  问题的提出

随着互联网发展与电子商务普及,网上花店兴起,其突破地域限制、提供便捷购物体验且市场呈快速增长趋势。该系统需具备多方面功能以满足花店运营及服务客户等需求。网上花店的现状如下:

  1. 花店中花朵种类多样,每天出售不同品种、不同数量的花朵。
  2. 对于每个品种的花朵的基本信息包括:花卉 ID、花卉类别、花卉名称、单位价格、进货日期、花卉数量等信息。
  3. 花朵的售卖方式分为单支自由搭配(按照每支单价总和计算)和花束(按照套餐进行搭配,包含打包等费用,花束价格固定)。
  4. 存储的客户的基本信息包括:客户 ID,客户姓名,地址,联系电话,客户可以按需购买需要花朵以及进行售后赔付操作,客户可以对订单进行评价打分。
  5. 客户拥有自己的收货地址本,可以设置多个不同的收货地址(包含国家省份城市以及详细地址、邮政编码等)以及收货人的联系方式、姓名等。
  6. 有多个供应商为花店供货,同一种花可以来自不同的供应商,每个供应商可以提供多种花朵。
  7. 花店人员分为经营者和员工,员工主要处理花店事务,经营者盘点管理。

 拟开发的系统要求如下:

  1. 花卉信息管理:输入花卉 ID、花卉类别、花卉名称、单位价格、进货日期、初始库存量等信息。支持修改以及更新花卉的价格、库存量等下架不再销售的花卉。
  2. 供应商管理:记录供应商信息更新供应商的联系信息,移除不再合作的供应商,记录每种花卉的供应商信息,支持多供应商供应同一种花卉。
  3. 客户管理:录入客户个人信息查看客户的购买记录。管理客户的收货地址有电话号码及收获地址等,客户能便捷地新增、编辑、删除收货地址,设置默认地址。
  4. 订单管理:生成订单和订单状态管理,支持订单状态变更,按条件搜索订单。发起售后请求和处理,员工处理售后赔付,客户可以对订单进行评价以及管理。
  5. 库存管理实现货物存储信息的录入,支持动态管理商品的入库和出库。
  6. 设计一完整的数据库。要求掌握数据库的设计的每个步骤;掌握数据设计各阶 段的输入、输出、设计环境、目标和方法;熟练的使用 SQL 语言实现数据库以 及数据库重要对象的建立、应用和维护。

2  可行性分析 

2.1  技术可行性

上述网上花店销售管理系统通过简洁的界面操作实现对数据的增删改查,完成花店中花卉、客户、订单等相关信息的管理以及销售工作。利用 SQL 语言的混合编程实现对数据库的遍历和数据提取,通过 java 编程在界面上展示数据。

  1. 网站或应用开发:
  1. 界面操作:通过java编程以及前端相关框架,可以实现简单直观的用户界面,支持对数据的增删改查操作。评估搭建网站或移动应用程序所需的技术栈和开发资源。
  2. 在线支付系统:集成支付宝、微信支付等主流支付平台,确保支付过程的安全和便捷。
  1. 数据库管理:
  1. 设计和实施有效的数据库管理系统,用于存储和管理订单、客户信息和产品库存 等数据,可以实现基本的增删改查,确保信息的更改以及及时更新,使用SQL语言进行数据库操作,通过Java编程语言在后端实现数据的提取和展示,确保数据操作的高效性和安全性。
  2. 考虑数据备份和恢复机制,确保数据的安全性和可靠性。
  1. 用户界面:
  1. 友好性和导航:设计简洁明了的用户界面,确保用户能够快速找到所需功能。
  2. 多语言支持:通过国际化(i18n)技术,支持多种语言版本,满足不同地区用户的需求。

2.2  经济可行性

随着信息技术的发展和开源软件的广泛应用,网上花店销售管理系统的开发成本能够得到有效控制。在开发过程中,主要成本集中在人力成本方面,包括系统设计、编程、测试等环节。由于系统功能模块相对清晰,对于技术人员的要求并非极高,所以开发周期相对较短,人力成本在可接受范围内。

对于实现基本功能而言,如商品管理(花卉信息管理、供应商管理)、客户管理(注册登录、信息查询与修改)、订单管理(生成、状态更新、赔付处理)、库存管理(更新与预警)以及简单的数据分析功能,所需要的硬件设备成本较低,仅需普通的服务器或云服务资源即可满足小型花店日常运营的数据存储和处理需求。

这种低成本的开发模式尤其适合小型花店。小型花店在经营过程中通常资金相对有限,对于销售管理系统的投入预算不高。而本系统能够满足其基本功能需求,包括花卉商品的展示与销售、客户订单的处理、库存的合理管控等,帮助花店在不增加过多成本的情况下提升运营效率。

从长期运营角度来看,系统投入使用后的运营成本主要包括服务器维护费用、网络费用等,这些成本相对较低。维护成本方面,由于系统架构设计简洁,在出现问题时易于排查和修复,进一步降低了维护成本。

即使在系统功能进一步拓展和复杂化的情况下,例如增加更深入的数据分析模块、更复杂的客户关系管理功能等,通过合理的成本控制和收益分析,开发成本、运营成本和维护成本与系统所带来的资产收益相比,利润仍能保持在较高水平。例如,通过精准的数据分析指导花卉采购和营销活动,可提高销售额;通过优化客户管理增加客户忠诚度,促进重复购买,从而提升整体收益。

2.3  操作可行性

  1. 系统兼容性
  • 操作系统:该网上花店销售系统在Windows 10和11系统下进行开发和运行,系统目前已经非常普及,用户在这些系统下可以方便地进行各种操作,实现预期目的。
  • 浏览器兼容性:确保系统在主流浏览器(如Chrome、Firefox、Safari、Edge)下正常运行,提供一致的用户体验

2.用户培训和支持

为员工提供详细的使用手册,确保他们能够熟练使用系统。该系统简单易上手,可以很快的完成相关的学习以及操作简单,维护简单。系统本身具有简单易上手的特点。其用户界面设计简洁明了,操作流程遵循直观的逻辑。

3  需求分析

3.1  数据需求

网上花店销售管理系统的数据需求主要如下:

  • 客户信息的输入、查询与修改、删除:能够接收修改、查询、删除客户的信息,包括用户ID、用户名、地址、联系电话、性别等,并将其保存至数据库中。
  • 客户的地址本管理与修改:客户可以设置多个收货人,电话号码及收获地址等,可以添加备注信息以及自行管理,选择不同的地址进行下单管理。地址本管理界面应具备排序功能,方便客户根据使用频率等因素对地址进行排序,同时支持批量删除和编辑功能。
  • 花卉信息的输入、查询与修改、修改:花卉信息,包括花卉ID、名称、类别、单位价格、初始库存量、花语等。员工可以进行增删改查,客户可以查看。
  • 库存信息的输入、查询与修改:记录每批花卉的进货详情,包括花卉ID、名称、供应商ID、库存数量、供货时间、供货记录号等。修改库存数量时,除了手动调整外,系统应支持根据实际销售、损耗、退货等情况自动更新库存,并记录库存调整的触发原因(如订单发货)。
  • 订单信息的输入:支持订单的创建,记录订单ID、用户ID、购买商品清单(include表)、收货地址、总金额、下单日期、支付状态、订单状态等信息。
  • 订单信息的查询与修改:系统应当允许员工查询订单详情,并根据订单的实际处理情况进行状态更新,修改订单ID、用户ID、购买商品清单、收货地址、总金额、下单日期、支付状态、订单状态等信息。
  • 员工信息的生成与管理:包括创建客户信息、删除客户信息、添加订单信息、删除订单信息、添加花卉信息、删除花卉信息、添加进货信息、删除进货信息。
  • 员工信息的操作记录:系统应当记录员工的所有操作,包括但不限于创建客户信息、删除客户信息、添加订单信息、删除订单信息、添加花卉信息、删除花卉信息、添加进货信息、删除进货信息等。
  • 经营者管理:包括创建员工用户信息、删除员工用户信息、统计花卉库存、统计利润、统计订单情况、统计赔付金额等。

3.2  功能需求

网上花店销售管理系统的功能需求主要涵盖以下几个方面:

  • 客户信息管理
  1. 可以查询客户信息;
  2. 添加新客户或删除不再活跃的客户,对客户信息进行添加及删除、修改的操作。
  • 花卉信息管理
  1. 浏览:提供列表视图,展示所有花卉的基本信息。
  2. 添加与删除:提供表单,管理员可以添加新的花卉信息或删除不再销售的花卉。
  • 订单信息管理
  1. 浏览:提供列表视图,展示所有订单的状态和详情。
  2. 添加与删除:员工应能手动添加测试订单或删除错误订单。
  3. 状态更新:员工根据订单的实际进展更新订单状态。
  4. 查询:提供搜索框,可以根据订单ID、客户ID等条件查询支付信息。
  • 员工信息管理
  1. 显示与查询:提供列表视图,展示所有员工的信息。
  2. 维护操作:允许经营者添加新员工或删除离职员工。
  3. 操作记录查询:允许经营者查看员工的操作记录,包括操作类型、时间、对象等。
  • 售后赔付信息管理
  1. 浏览:提供列表视图,展示所有售后的详细信息。
  2. 查询:提供搜索框,可以根据售后单ID、订单ID等条件查询订单售后信息。
  • 促销活动信息管理
  1. 显示与查询:提供列表视图,展示所有促销活动的信息。增删改查操作。
  • 地址本管理
  1. 显示与查询:提供列表视图,展示客户的地址本信息。增删改查。
  • 订单评价管理
  1. 显示与查询:提供列表视图,展示订单的的评价信息。增删改查。
  • 供货信息管理
  1.  显示与查询:提供列表视图,展示供货信息的的信详细介绍。增删改查。进行供货管理等。

3.3  数据流图(DFD)

通过对网上花店管理销售系统需求的调查分析,细化软件功能,把网上花店管理销售系统划分为订单处理、支付处理、退货处理、库存管理、系统这几个主要模块,明确每个模块所要完的主要逻辑功能,采用以图形的方式描绘数据在系统中流动和处理。涉及客户、员工、经营者、供应商、物流公司这几个实体,包含客户信息、花卉信息、订单信息、员工信息、库存信息、订单发货信息、售后信息等信息。

图1-1顶层数据流图

图1-2 第一层数据流图(整个系统)

图1-3 第二层数据流图(细化“订单处理”处理)

图1-4 第二层数据流图(细化“售后处理”处理)

图1-5 第二层数据流图(细化“进货管理”处理)

图1-6 第二层数据流图(细化“盘点管理”处理)

3.4  数据字典

为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供有关元素一致性定义和详细的描述:

  • 数据流字典

数据流名称:浏览花卉信息

别名:无

来源:花卉数据

去向:客户

数据组成:花卉 ID|花卉名称|单支价格|花卉数量|花语|花束价格|花卉分类ID|分类名称

数据流名称:订单处理
别名:无
来源:客户
去向:订单信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价

数据流名称:售后处理
别名:无
来源:客户
去向:售后信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 售后申请编号 | 售后申请日期 | 售后问题描述 | 处理状态

数据流名称:进货管理
别名:无
来源:供应商  去向:库存信息
数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 花卉编号 入库日期 | 入库数量 | 库存数量

数据流名称:客户下单
别名:无
来源:客户
去向:订单信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价

数据流名称:客户支付
别名:无
来源:客户
去向:订单信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 订单编号 | 支付金额 | 支付方式 | 支付日期

数据流名称:查看订单
别名:无
来源:客户
去向:订单信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价

数据流名称:申请售后
别名:无
来源:客户
去向:售后信息
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 售后申请编号 | 售后申请日期 | 售后问题描述 | 处理状态

数据流名称:协调赔付
别名:无
来源:员工   去向:售后信息
数据组成:员工 ID | 员工姓名 | 员工联系方式 | 售后申请编号 | 赔付金额 | 赔付方式 | 赔付日期

数据流名称:完成售后
别名:无
来源:员工
去向:售后信息
数据组成:员工 ID | 员工姓名 | 员工联系方式 | 售后申请编号 | 处理结果 | 处理日期

数据流名称:供应货物
别名:无
来源:供应商
去向:库存信息
数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 货物编号 | 货物名称 | 入库日期 | 入库数量 | 库存数量

数据流名称:获取订单状态

别名:无

来源:供应商

去向:库存信息

数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 订单编号 | 订单状态 | 处理日期

数据流名称:统计订单:

别名:无

来源:订单信息

去向:经营者

数据组成:订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价 | 支付金额 | 支付方式 | 支付日期

数据流名称:统计用户:

别名:无

来源:客户信息   去向:经营者

数据组成:客户 ID | 客户姓名 | 客户联系方式 | 注册日期 | 消费次数 | 消费金额

数据流名称:计算赔付
别名:无
来源:售后信息
去向:经营者
数据组成:售后申请编号 | 赔付金额 | 赔付方式 | 赔付日期

数据流名称:库存清点

别名:无

来源:库存信息

去向:经营者

数据组成:库存编号 | 库存名称 | 库存数量 | 盘点日期 | 盘点人员

  • 数据存储字典

数据存储名称:客户信息
描述:客户的基本资料及相关消费记录等信息
涉及处理:客户下单、客户支付、查看订单、申请售后、统计用户等及下一层细化的处理
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 注册日期 | 消费次数 | 消费金额 

标志符:D1

数据存储名称:花卉数据

描述:花卉的详细资料

涉及处理:P1、P2、P3 、P4及下一层细化的处理

数据组成:花卉 ID|花卉名称|单支价格|花卉数量|花语|花束价格|花卉分类ID|分类名称

标志符:D2

数据存储名称:订单信息
描述:客户下单相关的详细订单内容及状态信息
涉及处理:客户下单、客户支付、查看订单、修改订单信息、统计订单等及下一层细化的处理
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 订单编号 | 订单日期 | 花卉 ID | 花卉数量 | 订单总价 | 支付金额 | 支付方式 | 支付日期 | 订单状态

标志符:D3

数据存储名称:售后信息
描述:客户售后申请及处理的相关记录信息
涉及处理:申请售后、协调赔付、完成售后、计算赔付等及下一层细化的处理
数据组成:客户 ID | 客户姓名 | 客户联系方式 | 售后申请编号 | 售后申请日期 | 售后问题描述 | 处理状态 | 赔付金额 | 赔付方式 | 赔付日期 | 处理结果 | 处理日期

标志符:D4

数据存储名称:库存信息
描述:花卉货物库存的相关详细情况记录
涉及处理:进货管理、盘点管理、供应货物、录入货物入库信息、获取订单状态、货物出库、修改订单信息等及下一层细化的处理
数据组成:供应商 ID | 供应商名称 | 供应商联系方式 | 货物编号 | 货物名称 | 入库日期 | 入库数量 | 库存数量 | 出库日期 | 出库数量 | 盘点日期 | 盘点人员 | 订单编号 | 订单状态

标志符:D5

数据存储名称:供应商信息

描述:花卉供应商的相关资料信息

涉及处理:进货管理、供应货物、录入货物入库信息、获取订单状态、货物出库、修改订单信息等及下一层细化的处理

数据组成:供应商 ID | 供应商名称 | 供应商联系方式

标志符:D6

数据存储名称:员工信息
描述:参与售后等相关业务处理的员工基本信息
涉及处理:协调赔付、完成售后等及下一层细化的处理
数据组成:员工 ID | 员工姓名 | 员工联系方式

标志符:D7

  • 数据处理字典

数据处理名称:订单处理   处理定义:处理订单

激发条件:客户发出下单请求

输入:客户的订单要求 输出:D3 订单数据信息 

标志符:P1

数据处理名称:售后处理                
处理定义:处理客户售后相关事宜
激发条件:客户提交售后申请
输入:客户售后申请信息
输出:D4 售后数据信息

标志符:P2

数据处理名称:进货管理
处理定义:管理花卉进货流程
激发条件:供应商提供货物
输入:供应商货物信息
输出:D5 库存数据信息

标志符:P3

数据处理名称:盘点管理
处理定义:对库存花卉进行盘点
激发条件:定期盘点或库存异常时
输入:库存数据信息
输出:D5 库存数据信息

标志符:P4

数据处理名称:客户下单
处理定义:客户提交订单信息
激发条件:客户在系统下单操作
输入:客户订单详细信息
输出:D3 订单数据信息

标志符:P1.3

数据处理名称:客户支付
处理定义:处理客户订单支付环节
激发条件:客户完成支付操作
输入:支付相关信息
输出:D3 订单数据信息

标志符:P1.4

数据处理名称:查看订单
处理定义:客户查看已下订单详情
激发条件:客户发起查看订单请求
输入:客户身份信息  输出:D3 订单数据信息

标志符:P1.5

数据处理名称:申请售后
处理定义:客户提交售后申请
激发条件:客户遇到售后问题并申请
输入:客户售后问题描述
输出:D4 售后数据信息

标志符:P2.1

数据处理名称:协调赔付
处理定义:协调处理售后赔付事宜
激发条件:售后问题需要赔付处理
输入:售后申请信息

输出:D4 售后数据信息

标志符:P2.2

数据处理名称:完成售后
处理定义:完成售后流程并记录结果
激发条件:售后处理完毕
输入:处理结果信息
输出:D4 售后数据信息

标志符:P2.3

数据处理名称:供应货物

处理定义:供应商供应花卉货物

激发条件:供应商送货

输入:供应商货物详情

输出:D5 库存数据信息

标志符:P3.1

数据处理名称:录入货物入库信息
处理定义:录入货物入库相关数据
激发条件:货物入库操作时
输入:入库货物信息
输出:D5 库存数据信息

标志符:P3.2

数据处理名称:获取订单状态
处理定义:获取订单当前处理状态
激发条件:供应商或相关人员查询订单状态
输入:订单编号  输出:D5 库存数据信息

标志符:P3.3

数据处理名称:货物出库

处理定义:处理花卉货物出库情况

激发条件:订单发货或其他出库需求

输入:出库订单信息

输出:D5 库存数据信息

标志符:P3.4

数据处理名称:修改订单信息
处理定义:修改订单相关信息
激发条件:订单信息有误或需调整
输入:修改需求信息
输出:D3 订单数据信息

标志符:P3.5

数据处理名称:统计用户
处理定义:统计用户相关数据
激发条件:进行用户数据分析时
输入:D1 客户信息数据
输出:统计报表数据

标志符:P4.2

数据处理名称:统计订单
处理定义:统计订单相关数据
激发条件:进行订单数据分析时
输入:D3 订单信息数据
输出:统计报表数据

标志符:P4.1

数据处理名称:计算赔付
处理定义:计算售后赔付金额等
激发条件:售后需要赔付计算时
输入:D4 售后数据信息
输出:D4 售后数据信息

标志符: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 中的关系图

声明:此次课设为本人专业课课设报告内容,仅供参考,不要照搬,剩余部分内容见下一篇文章

相关文章:

数据库课设——网上花店销售管理系统(上)

声明:此次课设为本人专业课课设报告内容,仅供参考,不要照搬 1 问题的提出 随着互联网发展与电子商务普及,网上花店兴起,其突破地域限制、提供便捷购物体验且市场呈快速增长趋势。该系统需具备多方面功能以满足花店运营…...

用于AI的 数据存储其获取介绍

用于 AI 的数据存储和获取方法依赖于系统架构、数据类型(结构化、非结构化、时序数据、嵌入向量等)以及使用场景(训练数据存储、实时推断、历史数据分析等)。以下是主要存储方式的分类和简介: 1. 文件存储 介绍&…...

flutter 专题二十四 Flutter性能优化在携程酒店的实践

Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年,这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合,大大提高了研发效率。在开发过程中,也遇到了一些性能相关问题和…...

L28.【LeetCode笔记】移动零(三种解法)

目录 1.题目 2.向前覆盖法 分析 代码 提交结果 3.优解:双指针 代码 提交结果 4.其他不符合题意的方法:使用队列 代码 提交结果 1.题目 https://leetcode.cn/problems/move-zeroes/description/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾…...

jenkins入门10--自动化构建

build periodically:设定类似cron周期性时间触发构建 * * * * * (五颗星,中间用空格隔开) 第一颗表示分钟,取值0~59 第二颗表示小时,取值0~23 第三颗表示一个月的第几天,取值1~31 第四颗表示第几月&#xf…...

el-table拖拽表格

1、拖拽插件安装 npm i -S vuedraggable // vuedraggable依赖Sortable.js,我们可以直接引入Sortable使用Sortable的特性。 // vuedraggable是Sortable的一种加强,实现组件化的思想,可以结合Vue,使用起来更方便。 2、引入拖拽函数…...

如何轻松反转C# List<T>中的元素顺序

在C#中&#xff0c;有多种方法可以反转 List<T> 的元素顺序。以下是几种常见的方法&#xff1a; 方法一&#xff1a;使用 List<T>.Reverse 方法 List<T> 类提供了一个内置的 Reverse 方法&#xff0c;可以就地反转列表中的元素顺序。 using System; using…...

Transformer中Self-Attention以及Multi-Head Attention模块详解(附pytorch实现)

写在前面 最近在项目中需要使用Transformer模型来处理图像任务&#xff0c;所以稍微补充一下这部分的知识&#xff0c;本篇主要了解一下Self-Attention以及Multi-Head Attention模块。 原论文链接&#xff1a;https://arxiv.org/pdf/1706.03762 原文代码&#xff1a;tensor2…...

在Nvidia Jetson ADX Orin中使用TensorRT-LLM运行llama3-8b

目录 背景&#xff1a;步骤 1.获取模型权重第 2 步&#xff1a;准备第 3 步&#xff1a;构建 TensorRT-LLM 引擎 背景&#xff1a; 大型语言模型 &#xff08;LLM&#xff09; 推理的关键瓶颈在于 GPU 内存资源短缺。因此&#xff0c;各种加速框架主要强调减少峰值 GPU 内存使…...

六十一:HTTP/2的问题及HTTP/3的意义

随着互联网的快速发展&#xff0c;网络协议的升级成为优化用户体验和提升网络效率的重要手段。HTTP/2 于 2015 年发布&#xff0c;标志着超文本传输协议的重大改进。然而&#xff0c;尽管 HTTP/2 带来了许多新特性&#xff0c;它也存在一定的问题。在此背景下&#xff0c;HTTP/…...

IOS开发如何从入门进阶到高级

针对iOS开发的学习&#xff0c;不同阶段应采取不同的学习方式&#xff0c;以实现高效提升.本文将iOS开发的学习分为入门、实战、进阶三个阶段&#xff0c;下面分别详细介绍. 一、学习社区 iOS开源中国社区 这个社区专注于iOS开发的开源项目分享与协作&#xff0c;汇集了大量开…...

非一般的小数:小数的概念新解、小数分类、浮点数的存储

非一般的小数&#xff1a;小数的概念新解、小数分类、浮点数的存储 一、小数的概念二、小数的分类1&#xff0e;有限小数、无限循环小数、无限不循环小数2&#xff0e;纯小数、带小数3&#xff0e;定点数、浮点数 三、浮点数的存储 一、小数的概念 这还用解释吗&#xff1f;小…...

关于游戏销量的思考

1、黑神话达到2300万套&#xff0c;分析师上调预期到超过100亿营收。 以往的我的世界、小鸟、超级食肉男孩等游戏也都是几千万&#xff0c;上亿的销量。 也改变了相关开发者的命运。 一个开发者&#xff0c;卖出一个30万&#xff0c;或100万销量的作品&#xff0c;就足够改变…...

JuiceFS 详解:一款为云原生设计的高性能分布式文件系统

JuiceFS 详解&#xff1a;一款为云原生设计的高性能分布式文件系统 1. 什么是 JuiceFS&#xff1f; JuiceFS&#xff08;Juiced File System&#xff09;是一款高性能、POSIX 兼容的云原生分布式文件系统。它采用对象存储作为底层存储&#xff0c;支持多种元数据引擎&#xf…...

百度Android面试题及参考答案 (下)

Executorservice 和 Executor 有什么区别? Executor 接口 Executor 是一个简单的接口,它定义了一个方法execute(Runnable command)。这个接口的主要目的是将任务的提交和任务的执行分离,它提供了一种通用的方式来执行一个Runnable任务,但是它没有提供更多高级的功能,比如任…...

RK3588+FPGA全国产异步LED显示屏控制卡/屏幕拼接解决方案

RK3588FPGA核心板采用Rockchip RK3588新一代旗舰 级八核64位处理器&#xff0c;支持8K视频编解码&#xff0c;多屏4K输出&#xff0c;可实现12屏联屏拼接、同显、异显&#xff0c;适配多种操作系统&#xff0c;广泛适用于展览展示、广告内容投放、新零售、商超等领域实现各种媒…...

Elasticsearch:Query rules 疑难解答

作者&#xff1a;来自 Elastic Kathleen_DeRusso 查询规则&#xff08;Query rules&#xff09;为用户提供了一种对特定查询进行细粒度控制的方法。目前&#xff0c;查询规则的功能允许你将你选择的搜索结果固定在结果集的顶部&#xff0c;和/或根据上下文查询数据从结果集中排…...

四、VSCODE 使用GIT插件

VSCODE 使用GIT插件 一下载git插件与git Graph插件二、git插件使用三、文件提交到远程仓库四、git Graph插件 一下载git插件与git Graph插件 二、git插件使用 git插件一般VSCode自带了git&#xff0c;就是左边栏目的图标 在下载git软件后vscode的git插件会自动识别当前项目 …...

键盘鼠标共享工具Barrier(kail与windows操作系统)

键鼠共享工具Barrier(kail与windows操作系统)_barrier软件-CSDN博客 sudo apt install barrier...

QTcpSocket 中设置接收缓冲区大小

在 QTcpSocket 中设置接收缓冲区大小 使用setSocketOption方法 在QTcpSocket类中&#xff0c;可以使用setSocketOption函数来设置接收缓冲区大小。具体来说&#xff0c;对于 TCP 套接字&#xff0c;你可以使用QAbstractSocket::ReceiveBufferSizeSocketOption选项。以下是一个简…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...