Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据库课程设计(饭店点餐系统)

数据库课程设计(饭店点餐系统)

作者头像
全栈程序员站长
发布于 2022-08-26 06:51:29
发布于 2022-08-26 06:51:29
2.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

1.需求分析

2.概念结构设计

2.1 数据需求

2.1.1下订单阶段需要的数据:

2.1.2点菜阶段需要的数据:

2.1.3结账阶段需要的数据:

2.1.4员工管理需要的数据:

2.1.5顾客管理需要的数据:

2.1.6消费记录管理需要的数据有:

2.2事务需求

2.2.1数据录入

2.2.2数据更新/删除

2.2.3数据查询

2.3数据项

2.2抽象出系统的实体

2.3设计E-R图

2.3.1菜谱(Menus)E-R图

2.3.2顾客(Tomer)E-R图

2.3.3餐桌(FoodTable)E-R图

2.3.4员工(Worke)E-R图

2.3.5订单(Oder)E-R图

2.3.6消费记录( Sales_bill)E-R图

2.3.7折扣规则(Discount_rules)E-R图

2.3.8全局E-R图

3. 逻辑结构设计

3.1转换规则

3.2 根据以上规则得到如下关系模型(红色字体的属性为主码)

4. 数据库物理设计与实施

4.1创建数据库

4.2建立基本表

4.2.1菜谱(Menus)

4.2.2顾客(Tomer)

4.2.3餐桌(FoodTable)

4.2.4员工(Worke)

4.2.5订单(Oder)

4.2.6菜谱_订单(Menus_Oder)

4.2.7折扣规则(Discount_rules)

4.2.8消费账单(Sales_bill)

4.3管理基本表

4.4建立和管理视图

4.4.1建立视图

4.4.2管理视图

5.访问数据库

5.1数据查询

5.1.1 Foodtable表

5.2.1menus表

5.1.3员工表(worke)

5.1.4消费记录( Sales_bill)

5.1.5顾客(Tomer)

5.1.6订单(Oder)

5.1.7折扣规则(Discount_rules)

5.1.8点菜(menus_oder)

5.2数据更新

6.数据库维护

6.1备份数据库

总结与心得

附录:


1.需求分析

通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手,结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了以下数据分析。

2.概念结构设计

2.1 数据需求

餐桌数据包括餐桌号、座位数、状态(空/有人)。 餐厅存储有顾客信息,员工信息。菜品信息有菜品编号、名称、类别、价格等 。

具体数据需求如下:

2.1.1下订单阶段需要的数据:

顾客信息:包括顾客编号。

订单信息:包括订单编号、消费时间。

餐桌信息:包括编号、可容人数、使用状态等

员工信息:包括员工工号。

2.1.2点菜阶段需要的数据:

订单信息:订单编号

菜品信息:包括菜品编号、菜品名称、菜品数量等。

2.1.3结账阶段需要的数据:

订单信息:包括订单编号、顾客编号

菜品信息:包括菜品编号、菜品名称、菜品数量等。

员工信息:包括员工工号

折扣信息:包括消费金额、折扣数

2.1.4员工管理需要的数据:

员工档案:包括工号、姓名、性别、工资

2.1.5顾客管理需要的数据:

顾客档案:包括编号、姓名、性别等。

2.1.6消费记录管理需要的数据有:

消费信息:订单编号、消费金额、折扣后金额、结账时间

2.2事务需求

2.2.1数据录入

录入顾客信息、录入餐桌信息、录入员工信息、录入菜品信息

2.2.2数据更新/删除

更新/删除餐桌信息、更新/删除菜谱菜品信息、更新/删除员工信息、更新/删除顾客信息、更新/删除订单菜品信息

2.2.3数据查询

查询可用餐桌信息、查询在售菜品信息、查询订单信息、查询顾客点菜信息 、查询员工信息、查询顾客消费信息

2.3数据项

FoodTable(餐桌)数据项

属性

存储代码

类型

长度

餐桌号

Cz_id

varchar

座位数

Cz_number

int

使用状态

Cz_zt

varchar

2

Menus(菜谱)数据项

属性

存储代码

类型

长度

编号

M_id

varchar

10

名称

M_name

varchar

20

类别

M_class

varchar

10

价格

M_price

float

Worke(员工)数据项

属性

存储代码

类型

长度

员工号

W_id

varchar

10

姓名

W_name

varchar

20

性别

W_sex

varchar

2

年龄

W_age

int

工资

W_salary

float

Tomer(顾客)数据项

属性

存储代码

类型

长度

编号

T_id

varchar

10

姓名

T_name

varchar

20

性别

T_sex

varchar

4

手机号

T_phone

varchar

11

Oder(订单)数据项

属性

存储代码

类型

长度

订单编号

O_id

varchar

10

顾客编号

T_id

varchar

10

消费时间

time

datatime

餐桌编号

Cz_id

varchar

10

服务员编号

W_id

varchar

10

Menus_Oder(点菜)数据项

属性

存储代码

类型

长度

订单编号

O_id

varchar

10

菜品编号

M_id

varchar

10

菜品名称

M_name

varchar

20

菜品数量

M_number

int

Discount_rules(折扣规则)数据项

属性

存储代码

类型

长度

消费金额

Je

float

折扣

Zk

float

Sales_bill(消费账单)数据项

属性

存储代码

类型

长度

订单编号

O_id

varchar

10

消费金额

S_price

float

折扣后金额

S_priceafter

float

账单时间

time

datetime

2.2抽象出系统的实体

菜谱(Menus)

顾客(Tomer)

餐桌(FoodTable)

员工(Worke)

订单(Oder)

消费记录( Sales_bill)

折扣规则(Discount_rules)

2.3设计E-R图

2.3.1菜谱(Menus)E-R图

2.3.2顾客(Tomer)E-R图

2.3.3餐桌(FoodTable)E-R图

2.3.4员工(Worke)E-R图

2.3.5订单(Oder)E-R图

2.3.6消费记录( Sales_bill)E-R图

2.3.7折扣规则(Discount_rules)E-R图

2.3.8全局E-R图

3. 逻辑结构设计

3.1转换规则

一个实体型转换成一个关系模型。实体的属性就是关系的属性,实体的码就是关系的码。

实体型间的联系常有如下不同的情况:

a. 一个1:1联系可以转换为一个独立的关系模式,也可以任意一端对应的关系模式合并。

b. 一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。

c. 一个m:n联系转换成一个关系模式。

d. 3或3个以上实体间的一个多联系可以转换成一个关系模式。

e. 具有相同码的关系模式可合并。

3.2 根据以上规则得到如下关系模型(红色字体的属性为主码)

菜谱(菜品编号,菜品名称,菜品类别,菜品价格)

顾客(顾客编号,姓名,性别,年龄,联系方式)

餐桌(餐桌号,座位数,使用状态)

员工(工号,姓名,性别,年龄,工资)

订单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)

菜谱_订单(订单编号,菜品编号,菜品名称,菜品数量)

消费记录(订单号,消费金额,折扣后金额,账单时间)

折扣规则(消费金额,折扣)

4. 数据库物理设计与实施

数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理系统,为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构过程,就是数据库的物理设计。这一阶段主要任务时确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程。

4.1创建数据库

4.2建立基本表

4.2.1菜谱(Menus)

4.2.2顾客(Tomer)

4.2.3餐桌(FoodTable)

4.2.4员工(Worke)

4.2.5订单(Oder)

4.2.6菜谱_订单(Menus_Oder)

4.2.7折扣规则(Discount_rules)

4.2.8消费账单(Sales_bill)

4.3管理基本表

有时候应用环境和应用需求的改变,我们需要修改已经建立好的基本表的模式结构或者更新已经插入的数据。mysql语句采用alter table<>语句修改基本表的结构,利用drop<>子句删除基本表,利用update更新已经插入的数据。alter table语句以修改基本表的名字,增加新列或者增加新的完整性约束条件,修改原有列的定义,包括修改列名和数据类型等。drop子句用于删除指定的完整性约束条件。UPDATE用于把插入表的数据更新改变。

因为在建立表时将Tomer表中的T_sex错误的录为T_rsex,因此用alter table 表名 change 旧字段名 新字段名 新字段类型。

4.4建立和管理视图

视图是一个虚拟表,其内容由查询定义。同真实表一样,视图包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。

4.4.1建立视图

4.4.2管理视图

将王昭君的电话改为**********

这张图片不能放上

5.访问数据库

5.1数据查询

5.1.1 Foodtable表

5.2.1menus表

5.1.3员工表(worke)

5.1.4消费记录( Sales_bill)

5.1.5顾客(Tomer)

5.1.6订单(Oder)

5.1.7折扣规则(Discount_rules)

5.1.8点菜(menus_oder)

5.2数据更新

将员工表(worker)中的06号员工W_age数据项改为20,W_salary改为5100。

原来的表:

修改过程

改过之后

6.数据库维护

数据库维护包括许多内容,包括用户权限的设置、数据库完整性维护、数据库的备份、表的备份、日志备份等。

6.1备份数据库

完全备份:这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。

事务日志备份:事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。

差异备份:也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份

文件备份:数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。

备份截图:

总结与心得

在这个课程设计中,我学到的东西还是很多的,感受颇多。第一,这次课程设计巩固了之前学习到的知识,并将学到的知识进行了串联。第二,我初略学到了设计一个数据库的几个步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,运行,实现,运行和维护。但是我到现在还是不会使用触发器,并且对于查询的实验和方法还是有些单一。

这一学期的数据库就以这次实训落幕了。感觉挺不舍的。虽然之后也没有相关的课程了,但我觉得我对数据库的学习并不会就此止步。接下来的想法就是把所学到的知识强化,达到能运用自如,并且想要学会C++或是JAVA跟数据库的连接。

附录:

4.2建立基本表 4.2.1菜谱(Menus) create table Menus( M_id varchar(10) primary key, M_name varchar(20), M_class varchar(10), M_price float);

4.2.2顾客(Tomer) create tale Tomer (T_id varchar(10) primary key, T_name varchar(10) not null T_rsex varchar(4) check (T_sex=’男’or T_sex=’女’) , T_phone varchar(20) );

4.2.3餐桌(Foodtable) create table Foodtable (Cz_id varchar(10) primary key, Cz_number int not null, Cz_zt varchar(6)check(Cz_zt=”空” or Cz_zt=”有人”));

4.2.4员工(Worke) create table Worke (W_id varchar(10) primary key, W_name varchar(10), W_sex varchar(4) check(W_sex=’男’ or W_sex=’女’), W_age int, W_salary float) ;

4.2.5订单(Oder) create table der (O_id varchar(10) primary key, T_id varchar(10) not null, time datetime not null, Cz_id varchar(10) not null, W_id varchar(10) not null, foreign key(T_id) references Tomer(T_id), foreign key(Cz_id)references Foodtable(Cz_id), foreign key(W_id) references Worke(W_id));

4.2.6菜谱_订单(Menus_Oder) create table Menus_Oder (O_id varchar(10), M_id varchar(10), M_name varchar(10), M_number int not null, Primary key(M_id ,O_id), foreign key(M_id) references Menus(M_id ), foreign key(O_id) references Oder(O_id) ) ;

4.2.7折扣规则(Discount_rules) create table Discount_rules (Je float primary key, Zk float)

4.2.8消费记录 Sales_bill create table Sales_bill (O_id varchar(10) primary key , S_price float, S_priceafter float, time datetime, foreign key(O_id ) references Oder(O_id ) );

这篇文章的基本框架来源于数据库课程设计餐饮下单管理系统 – 百度文库 修改了一下格式应该好看了许多吧。 这个博客就是整个word,附录就是数据库源码,有点小毛病,能运行出来的就直接拿走。 因为太多人要,所以花了点时间把数据输进去了。 资源自取:(勿做伸手党,请留下你的赞和关注) 链接:点击下载 提取码:p29k 数据库课程设计饭店点餐系统.zip_饭店点餐系统-数据库文档类资源-CSDN下载

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144199.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库系统概论之应用开发实验
制作背景:公司管理系统是一种重要的信息管理系统,用于管理和运营各种企业和组织。随着现代企业的发展和规模的扩大,对于员工和资源的管理变得越来越复杂和繁琐。为了提高企业的效率和管理水平,许多公司开始采用数据库系统来构建公司管理系统。
LucianaiB
2025/05/28
1270
数据库系统概论之应用开发实验
软件设计师之综合技能(一)
E-R图也称实体-联系图(Entity Relationship Diagram),主要包含三种成分:
muntainyang
2020/10/23
6600
软件设计师之综合技能(一)
订单模块数据库表解析(一)
本文主要对订单及订单设置功能的表进行解析,采用数据库表与功能对照的形式。 订单 相关表结构 订单表 订单表,需要注意的是订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单。 create table oms_order ( id bigint not null auto_increment comment '订单id', member_id bigint not null comment '会员
macrozheng
2019/07/22
2.2K0
订单模块数据库表解析(一)
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
餐馆点餐系统意味着用户可以在线订购、订购和支付配送的点餐系统。收到订单后,商家准备食物,送货,送货上门。
Designer 小郑
2023/08/01
7.9K2
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
Java数据库项目之满汉楼
src/com/hspedu/mhl/dao/DiningTableDAO.java
timerring
2023/05/24
6700
Java数据库项目之满汉楼
课程设计—飞机订票系统
基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。
全栈程序员站长
2022/07/02
1.6K0
课程设计—飞机订票系统
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
本章主要考点:■数据库设计的6个步骤 、ER图合并出现的冲突与解决方法、■ER图转换成关系模式
命运之光
2024/03/20
4560
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
数据库课程设计——学生宿舍信息管理系统
目录
全栈程序员站长
2022/08/31
5.4K0
数据库课设---酒店管理系统(MySQL、VBNet)
当在客房表中加入一条信息后显示“已占”表示有客户入住,当在客房表中删除一条信息后显示“已退”表示客户离开。
小灵蛇
2024/07/12
9990
数据库课设---酒店管理系统(MySQL、VBNet)
数据库课程设计
目前社会上信息管理系统发展飞速,越来越多的企业事业单位引入信息管理软件来管理自己日益增长的各种信息。各种网店也采用了不同的管理系统来管理商品信息,取得了很大的成效。网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了网上书店管理系统。
全栈程序员站长
2022/07/21
1.3K0
数据库课程设计
数据库课程设计 ——酒店管理系统「建议收藏」
(1)酒店管理系统用于满足酒店工作人员和管理人员的需求。 (2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店房间的入住离开信息。管理员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。 (3) 客户可以申请入住酒店,酒店工作人员需要对客户的姓名、性别、身份证号、房间号、入住时间、联系方式等信息进行记录,客户退房时进行退房记录。 4、管理员和员工可以通过姓名、入住日期、身份证号、房间号、联系方式等信息查询客户入住和离开情况。 从客户角度考虑业务流程如图1-1所示。
全栈程序员站长
2022/08/26
9.5K2
数据库课程设计 ——酒店管理系统「建议收藏」
MySQL数据库基础练习系列5、会员管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/07
1440
数据库课程设计——火车票售票系统「建议收藏」
数据库课程设计的题目,设计了一个火车票售票系统,实现了列车信息查询,车票查询及购买,订单查询,个人信息管理等功能,数据是从12306爬取的真实数据。
全栈程序员站长
2022/08/31
3.1K0
数据库课程设计——火车票售票系统「建议收藏」
数据库系统:第七章 数据库设计
三分技术,七分管理,十二分基础数据。十二分基础数据强调了数据的收集、入库、更新维护是数据库建设中的重要环节。
Here_SDUT
2022/08/09
2.1K0
数据库系统:第七章 数据库设计
毕业设计So Easy:基于Java语言西餐厅点餐系统
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......
不脱发的程序猿
2021/06/21
9840
毕业设计So Easy:基于Java语言西餐厅点餐系统
微信点餐的需求和技术演变
1-6是一期内容,神通交接前已完成。7-10是二期内容,属于后续功能扩充。11是待完成功能,12是附加的会员管理方面的功能。
职场亮哥
2020/10/10
1K0
微信点餐的需求和技术演变
数据库系统课程设计 --- 人事管理系统(超详细)
🔥 在看该文章之前,我希望大家能够从头慢慢看下去,而不是直接去复制代码,该 课程设计其实可以学到一些东西的,说不定以后也许能够用上来的
IsLand1314
2024/11/26
4200
数据库系统课程设计 --- 人事管理系统(超详细)
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
摘 要:系统发挥Android 富有创造力和想象力的云应用开发,实现一套Android 客户端软件和完善的后台服务功能来完成点餐功能。该系统主要包括后台数据库服务器、WEB 服务器、无线网络、Android 前端等部分。客户端Android 系统智能手机具有前端处理与计算能力,而且通过无线网络访问WEB 服务器,如果需要数据访问,则访问后台数据库。介绍了系统架构的设计与搭建、技术选型、后台数据库的设计与实现、基本实用的点餐功能的分析、设计与开发。本文引用地址:http://www.eepw.com.cn/article/148487.htm
全栈程序员站长
2022/08/31
1.1K0
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
医院管理数据库课程设计[通俗易懂]
一节复一节,千枝攒万叶。我自不开花,免撩蜂与蝶。 皓首犹贪学,谦虚德益丰。潜神无朕际,悟物不言中。
全栈程序员站长
2022/08/30
1.1K0
医院管理数据库课程设计[通俗易懂]
试题库管理系统–数据库设计[通俗易懂]
目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。
全栈程序员站长
2022/07/04
2.8K0
试题库管理系统–数据库设计[通俗易懂]
推荐阅读
相关推荐
数据库系统概论之应用开发实验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档