酒店点菜信息系统
1.应用背景与要求说明
背景:
目前大多数酒店由于规模的,忽略了点菜系统的重要性,而本系统专为具有一定规模和经济条件的大型酒店设计。通过集成从顾客定桌、点菜、上菜到结帐等一系列功能,为每个环节明确分工,并通过可视化的软件支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系统,使酒店的管理更加规范化。
要求:
1、系统名称:酒店点菜信息系统
2、数据库管理软件:Microsoft SQL Server
3、数据库设计人员:
4、使用本数据库的程序:
5、数据库设计采用软件:Microsoft Office Visio 2003
6、系统采用C/S体系结构:Client (客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server (服务器)端用于提供数据服务。
7、运行平台:windows 2000/xp/linux
2.需求分析
2.1功能分析
1、服务员信息的管理:查询、增、删、改
2、菜单信息的管理:查询、增、删、改
3、厨师信息的管理:查询、增、删、改
4、房间信息的管理:查询、增、删、改
5、餐桌信息的管理:查询、增、删、改
6、前台定桌:顾客可以根据自己的需求,选择不同型号的房间或大厅
7、房间/大厅点菜:服务员按照用户需求为其点菜并提交菜单给厨房
8、厨师和菜的分组:厨师和菜分别分组,每组厨师和一组菜一一对应,该组每位厨师会做该组所有的菜。
9、厨师做菜管理:厨师可以获得自己的待做菜单,并对已做的菜进行标记。
10、上菜管理:服务员对已上菜和待上菜进行管理。
11、结帐服务:审核菜单,协助顾客结帐。
2.2业务活动
(顾客)定桌 —> (服务员)点菜 —> (厨师)做菜 —> (服务员)上菜
—> (顾客)结账
2.3数据流图
1、顶层进程――点菜系统
2、第二层
1)进程1――查询定桌系统
2)进程2――点菜系统
3)进程3――做菜系统
4)进程4――结帐系统
2.4数据字典
1、数据项
编号 | 数据项名称 | 说 明 部 分 | 编号 | 数据项名 称 | 说 明 部 分 |
1 | 服务员号 | 字符串类型 有唯一性 | 2 | 服务员姓名 | 文本类型 长度为20字符 |
3 | 性别 | 字符串类型 男、女 | 4 | 服务员年龄 | 整数类型 18-100 |
5 | 服务员参加工作时间 | 时间类型 **/** | 6 | 房间号 | 字符串类型 有唯一性 |
7 | 房间容纳人数 | 整数类型 | 8 | 餐桌数 | 整数类型 |
9 | 房间状态 | 枚举类型 满、空 | 10 | 房间类型 | 枚举类型 大、中、小 |
11 | 房间负责人 | 参照“服务员号” | 12 | 桌号 | 字符串类型 有唯一性 |
13 | 餐桌容纳人数 | 整数类型 | 14 | 餐桌房间号 | 参照“房间号” |
15 | 餐桌状态 | real 忙:1;空闲:0 | 16 | 菜号 | 字符串类型 有唯一性 |
17 | 菜名 | 文本类型 有唯一性 | 18 | 价格 | 字符串类型 |
19 | 菜类别号 | 整数类型 菜所属的类别 | 20 | 厨师号 | 字符串类型 有唯一性 |
21 | 厨师职称 | 文本类型 | 22 | 厨师状态 | 枚举类型 忙、闲 |
23 | 点菜时间 | 时间类型 | 24 | 备注 | 文本类型 |
25 | 房间名称 | 字符串类型 长度为20 | 26 | 服务员职位 | 文本类型 长度为20字符 |
27 | 厨师姓名 | 文本类型 长度为20字符 | 28 | 厨师性别 | 字符串类型 男、女 |
29 | 厨师参加工作时间 | 时间类型 **/** | 30 | 厨师年龄 | 整数类型 18-100 |
编号 | 数据结构名 | 属 性 |
1 | 服务员 | 服务员号、姓名、性别、出生日期、参加工作时间、备注 |
2 | 房间 | 房间号、容纳人数、餐桌数、房间类别、状态、备注 |
3 | 餐桌 | 餐桌号、容纳人数、房间号、状态、备注 |
4 | 菜 | 菜号、菜名、价格、菜类别号 |
5 | 厨师 | 服务员号、姓名、性别、出生日期、参加工作时间、职称、菜类别号、备注 |
6 | 服务员分工 | 服务员、餐桌、开始时间、结束时间 |
7 | 点菜 | 服务员、厨师、房间、餐桌、菜、点菜时间、是否已做、是否已上 |
编号 | 数 据 流 名 | 输 入 | 输 出 |
1 | 变更服务员 | 变更信息 | 服务员信息 |
2 | 查询服务员 | 服务员号 | 服务员信息 |
3 | 变更厨师 | 变更信息 | 厨师信息 |
4 | 查询厨师 | 厨师号 | 厨师信息 |
5 | 变更房间 | 变更信息 | 房间信息 |
6 | 查询房间 | 房间号 | 房间信息 |
7 | 变更餐桌 | 变更信息 | 餐桌信息 |
8 | 查询餐桌 | 桌号 | 餐桌信息 |
9 | 变更菜单 | 变更信息 | 菜单信息 |
10 | 菜单 | 菜号 | 菜名、菜价 |
11 | 查询空闲房间 | 房间状态条件 | 空闲房间信息 |
12 | 查询空闲餐桌 | 餐桌状态条件 | 空闲餐桌信息 |
13 | 结账 | 餐桌号 | 用餐信息 |
14 | 提交点菜请求 | 服务员号、桌号、日期、菜号 | 点菜信息 |
15 | 获得点菜请求 | 点菜信息 | 菜号、桌号、房间号、菜名 |
16 | 提交做菜信息 | 菜号、桌号 | 点菜信息 |
17 | 提交上菜信息 | 菜号、桌号 | 点菜信息 |
18 | 变更厨师分工信息 | 厨师号、菜号 | 厨师分工信息 |
19 | 预定餐桌 | 餐桌号 | 餐桌信息 |
20 | 预定房间 | 房间号 | 房间信息 |
21 | 交款 | 桌号 | 餐桌信息、房间信息 |
数据存储名 | 输入数据流 | 输出数据流 | 说 明 部 分 |
服务员信息 | 变更服务员 | 查询服务员 提交点菜请求 | |
厨师信息 | 变更厨师 | 查询厨师 获得点菜请求 | |
房间信息 | 变更房间 | 查询房间 提交点菜请求 查询空闲房间 | |
餐桌信息 | 变更餐桌 | 查询餐桌 提交点菜请求 查询空闲餐桌 提交做菜信息 提交上菜信息 | |
菜单信息 | 变更菜单 | 结账 提交点菜请求 | |
点菜信息 | 提交点菜请求 提交做菜信息 提交上菜信息 | 结账 获得点菜请求 | |
服务员分工信息 | 变更服务员分工信息 | ||
处理过程名 | 输入数据流 | 输出数据流 | 说 明 部 分 |
顾客登记 | 终端 | 变更房间 变更餐桌 | |
点菜 | 终端 | 提交点菜请求 获得点菜请求 | |
做菜 | 获得点菜请求 | 提交做菜信息 | |
上菜 | 提交做菜信息 | 提交上菜信息 | |
顾客结账 | 结账 | ||
E-R图模型
4.逻辑结构设计
4.1 基本表
1、服务员基本表 hWaiter
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
服务员号 | WAITER_NO | CHAR | 10 | 酒店统一编号,具有唯一性 |
服务员姓名 | WAITER_NAME | CHAR | 20 | 服务员名称 |
服务员性别 | WAITER_SEX | CHAR | 4 | 服务员性别 |
服务员年龄 | WAITER_AGE | INT | 18~100 | |
服务员参加工作时间 | WENTERTIME | DATE | 参加工作时间 | |
职位 | POST | CHAR | 20 | 普通或是负责人 |
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
房间号 | ROOM_NO | CHAR | 10 | 酒店统一编号,具有唯一性 |
房间名 | ROOM_NAME | CHAR | 20 | 房间名称 |
房间容纳人数 | ROOM_VOLUM | INT | 房间容纳人数 | |
桌子数 | NUMOFTABLE | INT | 1~10 | |
型号 | ROOM_SIZE | CHAR | 6 | 小、中、大、豪华 |
房间状态 | ROOM_STATUS | BOOLEAN | 忙:1;空闲:0 | |
房间负责人 | ROOM_MANAGER | CHAR | 10 | 外码,依据服务员表的服务员号 |
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
桌子号 | TABLE_NO | CHAR | 10 | 酒店统一编号,具有唯一性 |
桌子容纳人数 | TABLE_VOLUM | INT | 桌子容纳人数 | |
桌子房间号 | TABLE_ROOM | CHAR | 10 | 外码,依据房间基本表中的房间号 |
桌子状态 | TABLE_STATUS | BOOLEAN | 忙:1;空闲:0 |
4、菜表 hDishList
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
菜号 | DISH_NO | CHAR | 10 | 酒店统一编号,具有唯一性 |
菜名 | DISH_NAME | CHAR | 20 | 菜名 |
价格 | PRICE | FLOAT | 菜的价格 | |
菜类别 | DISH_CLASS | INT | 菜所属类别 |
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
厨师号 | COOK_NO | CHAR | 10 | 酒店统一编号,具有唯一性 |
厨师姓名 | COOK_NAME | CHAR | 20 | 厨师姓名 |
厨师性别 | COOK_SEX | CHAR | 4 | 厨师性别 |
厨师年龄 | COOK_AGE | INT | 18~100 | |
厨师参加工作时间 | CENTERTIME | DATE | 参加工作时间 | |
厨师职称 | PROTITLE | CHAR | 20 | 初、中、高级等 |
厨师状态 | COOK_STATUS | BOOLEAN | 忙:1;空闲:0 |
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
服务员号 | WAITER_NO | CHAR | 10 | 外码:依据服务员表中的服务员号 |
桌号 | TABLE_NO | CHAR | 10 | 外码:依据桌子表中的桌号 |
点菜时间 | MENUTIME | DATE | 提交菜单时间 |
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
服务员号 | WAITER_NO | CHAR | 10 | 外码:依据服务员表中的服务员号 |
桌号 | TABLE_NO | CHAR | 10 | 外码:依据桌子表中的桌号 |
房间号 | ROOM_NO | CHAR | 10 | 外码:依据房间表中的房间号 |
菜号 | DISH_NO | CHAR | 10 | 外码:依据菜表中的菜号 |
厨师号 | COOK_NO | CHAR | 10 | 外码:依据厨师表中的厨师号 |
点菜时间 | MENUTIME | DATE | 提交菜单时间 | |
是否做完 | MADE | BOOLEAN | 默认:false(未做完) | |
是否上菜 | SERVED | BOOLEAN | 默认:false (未上) |
1、空闲房间(房间号,负责人)
从房间基本表导出
2、大厅空闲桌(桌号,可容纳人数)
从桌子基本表导出
3、所有房间、桌空闲信息(房间号,桌号,空闲状态)
从房间和桌子基本表导出
4、结帐(房间号,桌号,菜号,菜名,单价)
从点菜表、菜表导出
5、服务员点菜生成视图
菜单(桌号,服务员号,点菜时间,菜的编号,菜号,菜名,价格,是否已上)
从点菜表、菜表导出
6、厨师做菜视图
做菜(房间号,桌号,菜号,菜名,是否已上)
从点菜表、菜表导出
5.物理实现
5.1 数据库的SQL脚本
CREATE DATABASE HotelChossMealDBMS;
--1.服务员
CREATE TABLE hWaiter (
VARCHAR(10) PRIMARY KEY,
VARCHAR(20) NOT NULL,
VARCHAR(4) NOT NULL,
INT NOT NULL,
DATETIME NOT NULL,
VARCHAR(20) NOT NULL
)
--2.房间
CREATE TABLE hRoom (
VARCHAR(10) PRIMARY KEY,
VARCHAR(20) NOT NULL,
INT NOT NULL,
INT NOT NULL,
VARCHAR(6) NOT NULL,
tinyint NOT NULL,
VARCHAR(10) NOT NULL
)
--3.桌子
CREATE TABLE hTable (
VARCHAR(10) PRIMARY KEY,
INT NOT NULL,
VARCHAR(10) NOT NULL,
tinyint NOT NULL
)
--4.菜表
CREATE TABLE hDishList (
VARCHAR(10) PRIMARY KEY,
VARCHAR(20) NOT NULL,
FLOAT NOT NULL,
INT NOT NULL
)
--5.厨师
CREATE TABLE hCook (
VARCHAR(10) PRIMARY KEY,
VARCHAR(20) NOT NULL,
VARCHAR(4) NOT NULL,
INT NOT NULL,
DATETIME NOT NULL,
VARCHAR(20) NOT NULL,
tinyint NOT NULL
)
--6.服务
CREATE TABLE hTableWaiter (
VARCHAR(10) PRIMARY KEY,
VARCHAR(10) NOT NULL,
DATETIME NOT NULL
)
--外键
ALTER TABLE hTableWaiter
ADD FOREIGN KEY (WAITER_NO) REFERENCES hWaiter(WAITER_NO);
ALTER TABLE hTableWaiter
ADD FOREIGN KEY (TABLE_NO) REFERENCES hTable(TABLE_NO);
--7.点菜表
CREATE TABLE hChooseDish (
VARCHAR(10) NOT NULL,
VARCHAR(10) NOT NULL,
VARCHAR(10) NOT NULL,
VARCHAR(10) NOT NULL,
VARCHAR(10) NOT NULL,
DATETIME NOT NULL,
tinyint NOT NULL,
tinyint NOT NULL
)
--外键
ALTER TABLE hChooseDish
ADD FOREIGN KEY (WAITER_NO) REFERENCES hWaiter(WAITER_NO);
ALTER TABLE hChooseDish
ADD FOREIGN KEY (TABLE_NO) REFERENCES hTable(TABLE_NO);
ALTER TABLE hChooseDish
ADD FOREIGN KEY (ROOM_NO) REFERENCES hRoom(ROOM_NO);
ALTER TABLE hChooseDish
ADD FOREIGN KEY (DISH_NO) REFERENCES hDishList(DISH_NO);
ALTER TABLE hChooseDish
ADD FOREIGN KEY (COOK_NO) REFERENCES hCook(COOK_NO);
5.2 触发器
(设计应用相关的触发器,每个组员至少实现一个触发器)
5.3 存储过程
(实现若干个应用中的功能,每个组员至少实现两个存储过程)
6.系统开发
(采用任何一种语言,开发一个可运行的软件系统,完成部分或者全部功能)
7.设计总结
小组详细分工情况,课程设计的个人总结(分开写总结,需结合课程设计的具体情况)