餐厅管理系统
在现在科技飞速发展的今天,越来越多的商家都开始采用科技来帮助自己提高经营所得。通过对餐厅的各项数据进行收集管理,能够大量的节约成本。在节约成本的同时,我们还能够通过对数据的分析对未来的发展进行合理的规划。
1.1 开发背景餐饮业作为我国第三产业中一个传统服务性行业,经历了改革开放起步、数量型扩张、规模连锁发展和品牌提升战略4个阶段,取得突飞猛进的发展。目前,全国已有餐饮网点400万个。然而,面对大量的数据,传统的的餐厅管理的方法显得有些不足,仅仅是依靠人工对数据进行逐个管理已经很难满足发展的需求。
1.2 发展现状现在已有部分餐厅实现通过管理系统的方法对数据进行管理,效果还是十分显著,对于管理者来说节省了大量的时间和精力。
1.3 开发目的解决餐厅管理者对于大量数据不方便管理的,以及餐厅实时现状的关注问题。
1.4 开发意义帮助用户解决不方便管理的问题,同时通过一段时间的数据积累,可以查看积累的数据,对当前经营状况做出初步的了解,进而对下一步的经营制定更优的策略。例如,可以通过系统查询最近一段时间菜品的销量,进而对食材的进货量做出调整。
2. 系统分析 2.1 可行性分析 技术可行性 通过面向对象的方法开发软件系统,这个可以由熟悉这方面知识的系统分析员和程序员进行开发。经济可行性 由于本系统运行的硬件环境要求不高,硬件的配置不需要很高,因此完成该系统的开发运行到投入使用所需要的成本不会很高。系统可行性 餐厅管理系统的使用并不需要很特别的技术,学习使用也并不困难,即使不是专业的人员使用在经过知识培训之后也能够掌握使用该系统的大部分功能。 2.2 需求分析 下单阶段的需求数据 顾客信息:顾客编号 订单信息:订单编号,消费时间 菜单信息:菜品编号,菜品名称,菜品数量 餐桌信息:编号,位置数量,是否占用 员工信息:员工工号结账阶段需求数据 订单信息:订单编号,顾客编号 菜品信息:菜品编号,菜品名称,菜品数量 消费信息:消费金额 员工信息:员工编号员工管理需求数据 员工档案:工号,姓名,性别,工资顾客管理需求数据 顾客档案:编号,姓名,性别,手机号码消费记录管理需求数据 消费信息:订单编号,消费金额,结账时间。数据录入 增加员工信息,餐桌信息,菜品信息,顾客信息数据修改/删除 修改员工信息,修改餐桌信息,修改菜品信息,修改顾客信息;删除员工信息,删除餐桌信息,删除菜品信息,删除顾客信息数据查询 查询当前餐桌的信息,查询菜品信息,查询订单信息,查询员工信息,查询顾客信息 2.3 业务流程图 2.4 数据字典 员工信息 菜谱 餐桌 顾客信息 订单信息 菜谱_订单 消费记录 3. 系统设计 3.1 概念模型设计3.1.1员工E-R图
3.1.2菜品
3.1.2餐桌
3.1.3顾客
3.1.4订单
3.1.5消费记录
3.1.6全局
3.2 逻辑模型设计 一对一联系(1:1) 一个联系转换成一个独立的关系模式一对多联系(1:n) 一个1:n联系转换成一个独立模式多对多联系(m:n) 一个m:n联系转换成一个独立模式关系模型 员工:工号(主码),姓名,性别,年龄,工资 餐桌:餐桌号(主码),可就餐人数,餐桌状态 菜谱:菜品编号(主码),菜名,菜品价格 顾客:顾客编号(主码),姓名,性别,手机号 订单:订单编号(主码),订单时间,顾客编号,消费金额,结账时间,员工工号 菜谱_订单:订单编号(主码),菜品编号(主码),菜品名称,菜品数量 消费记录:订单编号(主码),消费金额,结账时间 3.3 数据库表设计3.3.1 员工信息
表 1 员工信息
项目存储代码数据类型是否允许空员工工号W_idvarchar(10)NOT NULL员工性别W_sexvarchar(2)员工年龄W_ageint员工工资W_salaryfloat3.3.2菜谱
表 2 菜谱
项目存储代码数据类型是否允许空菜品编号M_idvarchar(10)NOT NULL菜名M_namevarchar(20)菜品价格M_pricevarchar(10)3.3.3餐桌
表 3 餐桌
项目存储代码数据类型是否允许空桌号T_id varchar(6)NOT NULL可就餐人数T_numbervarchar(10)餐桌状态(有/无 人)T_conditionvarchar(5)3.3.4顾客信息
表 4 顾客信息
项目存储代码数据类型是否允许空顾客编号C_id varchar(10)NOT NULL姓名C_namevarchar(10)性别C_sexvarchar(2)手机号C_phonevarchar(20)3.3.5订单信息
表 5 订单信息
项目存储代码数据类型是否允许空订单编号O_idvarchar(10)NOT NULL订单时间O_time_startdatetime桌号T_idvarchar(6)顾客编号C_idvarchar(10)消费金额O_costfloat结账时间O_time_finishdatetime员工工号W_idvarchar(10)NOT NULL3.3.6菜谱_订单
表 6 消费记录
项目存储代码数据类型是否允许空订单编号O_idvarchar(10)NOT NULL菜品编号M_idvarchar(10)NOT NULL菜品名称M_namevarchar(20)菜品数量M_numberint3.4功能设计 ①生成消费记录:包含订单编号,消费金额,结账时间. ②生成菜品销售情况 ③生成当前餐桌的使用情况 ④生成全部订单信息 ⑤生成全部员工信息 ⑥生成全部顾客信息
4.SQL语句的功能实现
4.1数据库创建 create database 餐厅管理系统 ON ( name = 餐厅管理系统_data, filename = ‘D:数据库实验餐厅管理系统_data.mdf’, size = 10, maxsize = 30, filegrowth=5 ) log ON ( name = 餐厅管理系统_log, filename = ‘D:数据库实验餐厅管理系统_log.ldf’, size = 10, maxsize = 30, filegrowth = 2 )
4.2表的创建
CREATE TABLE customer( C_id varchar(10) NOT NULL, C_name varchar(10) NULL, C_sex varchar(2) NULL, C_phone varchar(20) NULL, PRIMARY key (C_id) ) GO
CREATE TABLE foodtable( T_id varchar(6) NOT NULL, T_number varchar(10) NULL, T_condition varchar(10) NULL, PRIMARY KEY(T_id) ) GO
CREATE TABLE menu( M_id varchar(10) NOT NULL, M_name varchar(20) NULL, M_price varchar(10) NULL, PRIMARY KEY(M_id) ) GO
CREATE TABLE [order]( O_id varchar(10) NOT NULL, O_time_start datetime NULL, T_id varchar(6) NOT NULL, C_id varchar(10) NULL, O_cost float NULL, O_time_finish datetime NULL, W_id varchar(10) NOT NULL, PRIMARY KEY(O_id) ) GO
CREATE TABLE worker( W_id varchar(10) NOT NULL, W_name varchar(20) NULL, W_sex varchar(2) NULL, W_age int NULL, W_salary float NULL, PRIMARY KEY(W_id) ) GO
CREATE TABLE menu_order( O_id varchar(10) NOT NULL, M_id varchar(10) NOT NULL, M_name varchar(20) NULL, M_number int NULL, PRIMARY KEY(O_id,M_id), FOREIGN KEY(O_id) REFERENCES order, FOREIGN KEY(M_id) REFERENCES menu(M_id) ) GO
4.3功能实现
①生成消费记录:包含订单编号,消费金额,结账时间.
CREATE VIEW function1 AS SELECT O_id as 订单编号,O_cost as 消费金额,O_time_finish as 结账时间 FROM [餐厅管理系统].[dbo].[order]
②生成菜品销售情况
create view sell(M_id,M_name,count) AS select top 10 M_id as 菜品编号,M_name as 菜品名称,COUNT(M_id) from menu_order group by M_id,M_name order by COUNT(M_id) desc
③生成当前餐桌的使用情况
SELECT * FROM foodtable
④生成全部订单信息
SELECT O_id as 订单编号, O_time_start as 记录时间, T_id as 桌号, C_id as 顾客编号, O_cost as 消费金额, O_time_finish as 结账时间,W_id as 服务员编号 FROM [餐厅管理系统].[dbo].[order]
⑤生成全部员工信息
select W_id as 员工编号,W_name as 员工姓名, W_sex as 员工性别, W_age as 员工年龄, W_salary as 员工工资 from worker
⑥生成全部顾客信息 select C_id as 顾客编号, C_name as 顾客姓名, C_sex as 顾客性别,C_phone as 顾客手机号码 from customer
此为本人的数据库课设,仅为纪念学习过程。