目 录
1 绪论
1.1 研究背景
在餐饮行业中,顾客体验和服务效率是饭店成功的关键。针对这些核心需求,饭店考虑引入点餐系统来优化运营流程。在分析饭店的基本情况时,我们发现其面临着高峰时段顾客等待时间长、菜品更新频繁、员工管理复杂等挑战。
为了实现快速、准确、便捷的点餐体验,点餐系统需要具备菜品展示、订单处理、支付集成、厨房管理等功能。同时,系统还需支持多平台操作,以满足不同顾客群体的需求。在数据分析方面,我们首先进行了市场调研,发现顾客对于便捷的点餐方式有着强烈的需求,尤其是年轻一代。此外,我们还分析了饭店的营业数据,发现通过引入点餐系统,可以显著提高服务效率,减少顾客等待时间,从而增加顾客满意度和回头率。技术可行性方面,我们评估了当前市场上成熟的点餐系统解决方案,发现它们已经具备了高度的稳定性和易用性,且能够快速部署和集成到饭店现有的运营体系中。
综上所述,饭店点餐系统的引入不仅符合餐饮行业的发展趋势,也符合饭店的实际需求。通过引入该系统,饭店将能够提升顾客体验,提高服务效率,从而在竞争激烈的市场中脱颖而出。
1.2 实训目的
本次课程设计采用微软SQL Server 2012作为平台,围绕一个“点餐系统”的数据库设计案例来展开实训,内容包括SQL Server 2012安装、数据库设计、库表创建、数据的查询以及更新、数据库优化、安全管理等。
1.2.1 知识目标
(1)能够安装和配置SQL Server2012;
(2)掌握数据库设计方法
(3)熟练掌握使用SSMS和SQL语句创建与管理数据库表;
(4)掌握SELECT语句结构及WHERE子句、ORDER BY 、GROUP BY、COMPUTE子句的应用;
(5)理解视图和索引的概念和作用;
(6)理解和掌握两种数据库登录模式
(7)掌握基于SQL Server的简单Java项目开发的流程。
1.2.2 能力目标
(1)通过实验实训,巩固关系数据库的基本原理,培养学生数据库设计与库表创建能力、数据增删改查的操作能力、数据库安全管理能力。
(2)使学生掌握数据库设计与开发的生命周期,学会按照数据库系统的开发过程来设计数据库。
(3)培养学生撰写规范的数据库设计文档的能力。
1.2.3 素质目标
整体规划设计一个数据库管理信息系统,让学生掌握从事系统后台数据库开发与维护以及其它IT就业岗位所必需的数据库知识与技能。
1.3 实训内容
(1)安装和配置SQL Server以及数据库设计;
(2)使用SSMS和SQL语句创建与管理数据库表;
(3)使用INSERT、UPDATE、DELETE语句对数据表中的内容进行插入、更新、删除等操作;
(4)使用select语句实现精准查询、模糊查询、连接查询、子查询等内容;
(5)使用SSMS和SQL语句创建视图和索引;
(6)使用SQL语句创建存储过程和触发器;
(7)使用T-SQL语句对数据库进行权限管理。
1.4 实训要求
本系统名为“点餐系统”,设计本系统时,要展示实体和实体之间的联系,要全面考虑各实体之间的关系。
建立数据库时要考虑数据模型的三要素:数据结构、数据操作、完整性约束。数据库设计过程中,为使数据库满足现实需要及数据库稳定,要严格按照数据库设计步骤,一步一步,不得跨越。
2 需求分析
2.1 需求分析描述
(1) 数据需求
在饭店点餐系统的开发中,数据需求是确保系统正常运行的关键。从下订单、点菜、结账到员工和顾客管理,每个阶段都需要特定的数据支持。
下订单阶段:顾客通过系统选择餐桌并下单,系统需要记录顾客编号、订单编号、消费时间以及所选餐桌的编号、可容人数和使用状态。同时,为了追踪订单处理过程,还需要记录处理该订单的员工工号。
点菜阶段:顾客在订单中选择菜品,系统需记录菜品编号、名称和数量,并与订单编号关联,确保订单内容的准确性。
结账阶段:结账时,系统需再次验证订单编号和顾客编号,确保订单归属正确。同时,记录菜品编号、名称和数量,以便计算消费金额。此外,员工工号和折扣信息也是结账阶段的重要数据,用于记录服务人员和折扣详情。
员工与顾客管理:员工档案需包括工号、姓名、性别和工资等信息,便于管理和支付工资。顾客档案则包括编号、姓名、性别等基本信息,用于识别和管理顾客。
消费记录管理:消费信息详细记录了每笔订单的消费金额、折扣后金额和结账时间,为饭店提供了重要的财务数据。
(2)事务需求
事务需求涉及数据的录入、更新/删除和查询。
数据录入:系统需支持顾客、餐桌、员工和菜品信息的录入,确保数据的完整性和准确性。
数据更新/删除:随着饭店运营的变化,系统应支持对这些信息的更新和删除操作,以保持数据的时效性。
数据查询:系统需提供灵活的查询功能,包括可用餐桌、在售菜品、订单、顾客点菜、员工和消费信息的查询,便于饭店管理和顾客服务。
图2.1 饭店点餐系统的系统功能结构图
2.3 数据流图
图2.2 点餐系统的数据流图
2.4 数据字典
(1)数据结构: 下订单信息
含义:定义了顾客下单信息
组成:顾客编号,订单编号,消费时间,餐桌标号,员工编号
(2)数据结构:点菜阶段信息
含义:主要定义了顾客点菜相关信息
组成:订单编号,菜品编号,菜品类别,菜品价格,菜品名称
(3)数据结构:结账信息管理
含义:定义了顾客结账情况
组成:餐桌号,订单编号,顾客编号,员工工号,消费金额,折扣后金额
(4)数据结构:员工信息
含义:定义了饭店员工的基础信息
组成:工号,姓名,性别,入职日期,年龄,工资,电话
(5)数据结构:顾客信息
含义:定义了顾客用餐的基础信息
组成:顾客编号,姓名,性别,联系方式,餐桌好,订单编号
(6)数据结构:消费记录信息
含义:定义客户消费相关信息
组成:订单号,消费金额,折扣后金额,结账时间
2.5 实体分析
点餐系统数据库包含的实体有:
顾客实体:包括顾客编号、姓名、年龄、性别、联系方式。
餐桌实体:包括餐桌号、使用状态、桌位数。
菜谱实体:包括菜品编号、菜品名称、菜品类别、菜品价格
员工实体:包括员工编号、姓名、性别、入职日期、年龄、工资、电话。
订单实体:包括订单号、消费时间、联系电话、服务员编号。
消费记录:包括账单时间、折扣后金额、消费金额。
折扣规则:包括折扣编号、消费金额。
2.6 实体之间的关系
需要考虑它们是如何在餐厅的业务流程中相互关联的。以下是这些实体之间可能存在的关系:
(1)顾客与订单关系
关系名称:下单
描述:一个顾客可以下多个订单,一个订单只能由一个顾客下。
关系类型:一对多(1:N)
外键:订单实体中的顾客编号引用顾客实体中的顾客编号。
(2)顾客与消费记录关系
关系名称:消费
描述:一个顾客可以有多个消费记录,一个消费记录只能对应一个顾客。
关系类型:一对多(1:N)
外键:消费记录实体中可能不直接包含顾客编号,但可以通过订单号与订单实体关联,进而找到对应的顾客。
(3)餐桌与订单关系
关系名称:占用
描述:一个订单通常占用一个餐桌,一个餐桌在同一时间只能被一个订单占用(但在不同的时间段可以被不同的订单占用)。
关系类型:一对一(1:1,但在时间维度上可能是一对多)
外键:订单实体中可能包含餐桌号字段,指向餐桌实体中的餐桌号。
(4)菜谱与订单关系
关系名称:点餐
描述:一个订单包含多个菜品(来自菜谱),一个菜品可以被多个订单包含。
关系类型:多对多(M:N)
通常通过一个中间表(如订单详情表)来实现这种关系,该表包含订单号、菜品编号和数量等字段。
(5)员工与订单关系
关系名称:服务
描述:一个员工可以服务多个订单,一个订单只能由一个员工服务。
关系类型:一对多(1:N)
外键:订单实体中的服务员编号引用员工实体中的员工编号。
(6)订单与消费记录关系
关系名称:结算
描述:一个订单对应一个消费记录,用于记录该订单的最终消费情况。
关系类型:一对一(1:1)
外键:消费记录实体中可能包含订单号字段,与订单实体中的订单号相对应。
(7)折扣规则与消费记录关系
关系名称:应用
描述:一个消费记录可能应用了一个折扣规则,一个折扣规则可以被一个消费记录应用。
关系类型:多对多(1:1)
通常通过一个中间表(如折扣应用表)来实现这种关系,该表包含消费记录ID、折扣ID和具体折扣金额等字段。
3 数据库设计
3.1 数据库概念设计
3.1.1 局部ER图概念设计
(1)顾客与订单关系
图3.1 顾客与订单之间的ER关系图
(2)顾客与消费记录的关系
图3.2 顾客与消费记录之间的ER关系图
(3)餐桌与订单的关系
图3.3 餐桌与订单之间的ER关系图
(4)菜谱与订单的关系
图3.4 菜谱与订单之间的ER关系图
(5)员工与订单的关系
图3.5 员工与订单之间的ER关系图
(6)订单与消费关系
图3.6 订单与消费之间的ER关系图
(7)折扣规则与消费记录关系
图3.7 折扣规则与消费记录之间的ER关系图
3.1.2 全局ER图概念设计
全局ER图设计如下:
图3.6 全局ER关系图
3.2 数据库逻辑设计
由电脑销售系统的ER图,根据转化规则,将其转化为关系模型如下所示:
(1)顾客:(顾客编号、姓名、年龄、性别、联系方式、订单号)
PK:顾客编号
FK:订单号
(2)订单:(订单号、消费时间、联系电话、菜谱编号、账单时间)
PK:订单号
FK:账单时间、菜谱编号
(3)消费记录(账单时间、折扣后金额、消费金额、折扣编号)
PK: 账单时间
FK: 折扣编号
(4)菜谱(菜品编号、菜品名称、菜品类别、菜品价格、订单号、服务员编号)
PK:菜品编号
FK: 订单号、服务员编号
(5)点餐(菜谱号、订单号、点餐人数、菜品数)
PK: 菜谱号、订单号
(6)员工(员工编号、姓名、性别、入职日期、年龄、工资、电话)
PK:员工编号
(7)折扣规则(折扣编号、消费金额)
PK:折扣编号
3.3 物理设计——数据表设计
表3.1 顾客表(Tomer)
字段号 |
说明 |
类型 |
长度 |
备注 |
T_ID |
顾客编号 |
Int |
6 |
主键 |
T_Name |
姓名 |
Varchar |
225 |
不为空 |
T_Age |
年龄 |
Int |
12 |
不为空 |
T_Sex |
性别 |
Varchar |
10 |
不为空 |
T_phone |
联系方式 |
VARCHAR(20) |
20 |
不为空 |
O_id |
订单号 |
Int |
10 |