点餐系统数据库设计--SQL Server

这篇具有很好参考价值的文章主要介绍了点餐系统数据库设计--SQL Server。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

友情链接

1、学生成绩管理系统数据库设计–MySQL

学生成绩管理系统数据库设计–MySQL

2、医疗信息管理系统数据库–MySQL

医疗信息管理系统数据库–MySQL

3、邮件管理数据库设计–MySQL

邮件管理数据库设计–MySQL

4、商品管理系统数据库设计–SQL Server

商品管理系统数据库设计–SQL Server

5、SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)

SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)

6、SQL Server电影院数据库管理系统【英文版-源码】–(Movie Theatre Management System Database)

SQL Server电影院数据库管理系统【英文版-源码】–(Movie Theatre Management System Database)

一、需求分析

1.选题背景

随着经济不断发展,餐饮行业也随着物质生活水平逐步提高而迅速发展,人们对生活质量的要求也越来越高,享受真正自动化、人性化的服务成为了人们追求高质量生活的重要内容。在大多数的餐饮场所点菜、查看菜谱等是人工完成的,速度慢,效率低,极易出错,造成人力物力的极大浪费。然而随着我国市场经济的快速发展,餐厅点菜系统成为餐厅提升服务档次,提高办公效率,提高竞争力的关键因素之餐饮业要想跟上发展形势,餐馆点餐的信息化进程也要加快脚步。

2.系统功能

2.1 查询菜单功能

顾客可以根据所有餐厅的菜单信息,数据菜单的相关信息例如通过菜品的菜系查找对应菜系的菜品,也可以通过菜品类型查询相应的菜品,也可以根据价格范围来查询目标菜品,由餐厅管理者维护菜品信息。

2.2 菜品折扣功能

餐厅菜品一定程度上有折扣,可定期或者集中维护,顾客也可以通过折扣情况来选择菜品。

2.3 点餐功能

顾客进店后可根据菜单点相应的菜品,可以记录顾客点餐的份数和对应的口味需求,顾客也可以更改自己的点餐信息。餐厅管理者也可以查看菜品受欢迎程度以及对顾客口味进行分析。

2.4 餐桌和顾客信息

餐桌为顾客提供用餐位置,需要实时更新当前餐桌状态(空闲,就餐),不同餐桌提供的座位数不同。顾客是进店顾客相关信息,两个表都有管理员来维护,每一个顾客id对应一起进餐厅的顾客,人数不限,同时需要指定顾客的就餐桌号。

2.5 顾客实时状态维护

为了餐厅管理者更好维护餐厅就餐情况,为餐厅设计顾客状态表数据,可以数据顾客查询顾客当前状态。

2.6 顾客排队功能

顾客进入餐厅,如果满员需要一定时间等待,根据人数排队不同的桌位人数的排队。

2.7 结算功能

顾客就餐完成,完成结款,可以通过顾客编号,餐桌号,点单编号等信息查询到顾客的消费情况。每天的销售统计,套餐和单点的销售情况,实现对本店总体销售情况的统计。

3.用户需求分析

餐厅管理系统的总目标是为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映餐厅的工作情况、经营情况,从而提高餐厅的服务质量,获得更好的经济效益。其具体目标包括:
1)快速完成顾客的点餐。
2)准确无误地记录顾客的每笔消费记录。
3)实时、快速、准确地提供最新餐单。
4)方便查询顾客消费情况。
5)实现顾客排队功能。
顾客:顾客进店首先选择位置,拿到菜单进行点餐 。
菜品:供顾客选择,可由收银员(店员)维护、更新、删除、新增菜品,菜品编号,可提供菜系、价格和菜品类型供筛选,价格由最初店员设置,可通过折扣或者信息更新变更价格。
点菜单:顾客进店后进行点单,点菜单编号不唯一,同一桌同一批顾客存在点不同菜品的可能,顾客可自行选择口味,顾客可以根据需求取消点单或者增加点单。
顾客状态:体现顾客状态。
优惠信息:包括菜品编号和对应折扣,由店员更新,针对不同菜品折扣不同,店员可根据时令和物价进行更新,折扣范围是0-1。
收银单:统计点菜单顾客实际应付款项和对应折扣后实际应付款,计入收款时间,方便店员计算账目,可由店员维护。
店员:快餐店维护者,数据库主要使用人和维护人,主要维护菜品信息和菜品对应折扣,完成收款和账目统计等。
排队表,用于体现顾客排队情况,根据顾客人数等待餐桌不同。

4.数据字典

数据字典是关于数据的信息的集合,也是对数据流图中所包含的所有元素的定义的集合。
由于本次是小型数据库系统的开发,所以采用卡片形式书写数据字典。每张卡片上保存描述一个数据的信息。这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。
下面列出若干数据元素的数据卡片信息。

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

5.数据流图

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

二、数据概念结构

1.数据结构

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

概念结构设计是将分析得到的用户需求抽象为概念模型的过程,即在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系的模型。概念结构的主要特点是能真实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换,描述概念模型的有力工具是E-R模型。

2.ER图

2.1局部ER图

(1)顾客信息E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(2)餐桌E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(3)顾客状态E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(4)菜品E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(5)点菜单E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(6)优惠信息E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(7)收银员E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(8)收银单E-R图
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

(8)排队表E-R图

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

2.2 全局ER图

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

三、逻辑结构设计

逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型。设计逻辑结构时,首先是将概念结构转换为一般的关系、网状、层次模型,其次是将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换,最后是对数据模型进行优化。
将餐饮点菜系统的E-R图转换成关系数据模型。关系模式如下:

1.实体

顾客:属性有顾客编号、桌号、用餐人数、进店时间
餐桌:属性有餐桌编号、容量、状态(空闲、就餐)
顾客状态:顾客编号、时间、状态(就餐、等待、结款)
菜品:属性有菜品编号、菜品名称、菜品分类、所属菜系、价格、原材料
点菜单:属性有点菜单编号、顾客编号、菜品编号、份数、口味
优惠信息:属性有菜品编号、折扣
收银员:属性有收银员编号、姓名、联系方式
收银单:属性有收银单编号、收银员编号、顾客编号、餐桌编号、应收金额、折扣、实收金额、收银时间
排队表:属性有顾客编号,顾客人数,对应需要餐桌人数

2.实体间联系

一桌顾客对应一个菜单,多桌客人可以使用相同的菜单,因此顾客与菜单有多对一的联系。
客人、收银单之间存在一对一的关系,即一桌客人只对应一个收银单
点菜单和菜品之间存在一对多联系,一个菜单可对应多个菜品
菜品和折扣存在一对一联系,一个菜品对应一种折扣
顾客和顾客状态存在一对多联系,一个顾客对应多种客户状态
排队表顾客与顾客存在一对一关系

四、物理结构设计

数据库的物理结构设计是对于给定的逻辑数据模型,选取一个最合适应用环境的物理结构。数据库的物理结构指的是数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统,是在数据库逻辑结构的基础上设计出一组能够满足实际需求的关系、约束、和索引等信息。餐厅点菜系统的数据库表结构如下:

4.1 顾客CustomerInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.2 菜品信息FoodInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.3 优惠信息DiscountInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.4 点菜单OrderInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.5 店员信息ManagerInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.6 顾客状态实时表ManagerInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.7 收银单ChargeInfo

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

4.8 顾客排队表Queue

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

五、数据库构建

1.建表语句

1.1 创建数据库

create database restaurant on primary
(
	name='restaurant',
	filename='D:\database\restaurant.mdf',
	size=5MB,
	maxsize=100MB,
	filegrowth=15%
)
Log on
(
	name='restaurant_log',
	filename='D:\database\restaurant.ldf',
	size=5MB,
	maxsize=100MB,
	filegrowth=15%
)

GO
use restaurant;

1.2 创建表

-- 餐桌表
create table TableInfo
(
	Table_Id	 int primary key not null,
	Table_Num    int not null,
	Table_Status char(10) not null
);

-- 顾客表
create table CustomerInfo
(
	Cus_Id	  int primary key not null,
	Table_Id  int not null,
	Cus_num	  int not null,
	Intime	  datetime not null
);

-- 收银员表
create table CashierInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

-- 菜品表
create table FoodInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

-- 菜品折扣表
create table DiscountInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

--点菜单表
create table OrderInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

-- 收银表
create table ChargeInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

-- 顾客状态实时表
create table CuststatusInfo
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

-- 顾客排队表
create table Queue
(
	-- 需要完整代码请添加文章底部微信,付费咨询
);

1.3 添加外键约束

--折扣菜品菜品id是菜品表菜品id的外键
alter table CustomerInfo
add constraint fk_Tab_Cu foreign key(Table_Id) references TableInfo(Table_Id);

--折扣菜品菜品id是菜品表菜品id的外键
alter table DiscountInfo
add -- 需要完整代码请添加文章底部微信,付费咨询

--点菜单的菜品id是菜品表菜品id的外键,顾客id是顾客表顾客id的外键
alter table OrderInfo
add -- 需要完整代码请添加文章底部微信,付费咨询

--收银单的顾客id是顾客表顾客id的外键,收银员id是收银员表收银员编号的外键,用餐餐桌id是餐桌表餐桌id的外键
alter table ChargeInfo
add -- 需要完整代码请添加文章底部微信,付费咨询

--顾客状态实时表的顾客id是顾客表顾客id的外键
alter table CuststatusInfo
add -- 需要完整代码请添加文章底部微信,付费咨询

--顾客排队表的顾客id是顾客表顾客id的外键
alter table Queue
add -- 需要完整代码请添加文章底部微信,付费咨询

2.插入数据

--餐桌插入数据
insert into TableInfo values(1,2,'空闲');
insert into -- 需要完整代码请添加文章底部微信,付费咨询

--顾客插入数据
insert into CustomerInfo values(1001,2,1,'2019-11-19 08:21:56');
insert into -- 需要完整代码请添加文章底部微信,付费咨询

--收银员插入数据
insert into -- 需要完整代码请添加文章底部微信,付费咨询

--菜品插入数据
insert into FoodInfo -- 需要完整代码请添加文章底部微信,付费咨询

--菜品折扣插入数据
insert into DiscountInfo -- 需要完整代码请添加文章底部微信,付费咨询

--点菜单插入数据
insert into OrderInfo -- 需要完整代码请添加文章底部微信,付费咨询
--结算单表插入数据
insert into ChargeInfo -- 需要完整代码请添加文章底部微信,付费咨询
--顾客状态插入数据
insert into CuststatusInfo -- 需要完整代码请添加文章底部微信,付费咨询

--顾客排队表插入数据
insert into Queue -- 需要完整代码请添加文章底部微信,付费咨询

3.索引

--建立索引
CREATE INDEX Index_ Cash_Name ON -- 需要完整代码请添加文章底部微信,付费咨询

4.查询

select 
    FoodInfo.Food_id as 菜品编号,
    FoodInfo.Food_name as 菜品名称,
    Food_Type as 菜品类型,
    FoodInfo.Cuisine AS 菜品菜系,
    Price as 价格,
    DiscountInfo.Discount as 折扣
from FoodInfo inner join DiscountInfo
on FoodInfo.Food_id=DiscountInfo.Food_id;

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

select 
   -- 需要完整代码请添加文章底部微信,付费咨询

午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

5.触发器

5.1 增加数据库触发器

点菜单产生一个数据自动传入收银单数据中,增加表OrderInfo,触发表ChargeInfo
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

5.2 增触发器

新增客户自动默认排队,默认排队数桌人数为,后期可以修改,插入表CustomerInfo,触发表Queue
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

5.3 删触发器

删除不在参与排队的客户信息,即删除排队表中的客户信息,删除表CustomerInfo,触发表Queue
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

5.4 update触发器

更改客户人数,对应的排队人数也更新,更新CustomerInfo,触发CustomerInfo
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.存储过程

6.1 新增存储过程

新增顾客存储过程
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.2 变更存储过程

调节食品价格存储过程
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.3 删除存储过程

根据顾客id删除顾客排队存储过程
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.4 查询存储过程一

根据菜品类型查询快餐厅目前食品清单存储过程,默认主食
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.5 查询存储过程二

根据客户id查询排队状态存储过程
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

6.6 查询存储过程三

根据食物口味查询订单存储过程
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

7.视图

7.1 菜品种类分布

– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

7.2 建立视图,查看菜品及折扣情况

– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

测试
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

8.自定义函数

8.1 输入收银员编号,返回收银员姓名

– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

测试
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

8.2 建立自定义函数,输入食物名称,返回对应食物所属菜系

– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver

9.游标

显示有折扣的菜品信息
– 需要完整代码请添加文章底部微信,付费咨询
午餐外卖系统数据库设计,数据库,# SQL,数据库,sql,sqlserver文章来源地址https://www.toymoban.com/news/detail-788795.html

到了这里,关于点餐系统数据库设计--SQL Server的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SQL Server】数据库开发指南(一)数据库设计

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2023年04月08日
    浏览(92)
  • 《数据库系统概论》SQL Server 数据库导出、导入教程

    在SQL Server的使用过程中,大家难免遇到数据库表的导出、导入,从而实现用其它电脑打开数据库。 如果是使用学校实验室(机房)电脑做实验的同学,一定要掌握本技能!!! 1、右键点击数据库,“任务”,“生成脚本”,如下图 2、选择对象操作如图,“选择具体的数据

    2024年02月10日
    浏览(75)
  • 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月09日
    浏览(74)
  • linux系统SQL server数据库定时收缩

    出现下图问题,导致连接该数据库的程序不能正常启动 定时收缩数据库 需要三个脚本文件 linux_sqlcmd_timing_task_shrink.sh:主脚本文件 exec_sql.sh:执行数据库收缩脚本文件 shrink.sql:数据库收缩命令

    2024年02月06日
    浏览(46)
  • 学生信息管理系统 Java+SQL Server 数据库原理课程

    该项目实现了图形化界面的数据库的登录,以及对数据库中表的增删查改。 正好老师布置了相关作业,通过Java 连接 SQL Server 数据库,就写一个学生管理系统。 jdk8 数据库连接通过sqljdbc6.0 图形化界面用swing 目录 1、Java 连接SQL Server数据库 2、准备数据库 3、登录界面 要求:

    2024年02月09日
    浏览(69)
  • 数据库课设---学生宿舍管理系统(sql server+C#)

    设计内容:设计学生宿舍管理系统。 设计要求: (1)数据库应用系统开发的需求分析,写出比较完善系统功能。 (2)数据库概念模型设计、逻辑模型设计以及物理模型设计。 (3)完成功能模块结构设计并编写代码实现。 (4)软件总体测试及修改。 (5)撰写软件设计说

    2024年02月04日
    浏览(62)
  • 计算机毕业设计springboot基于微信小程序点餐系统的设计与实现pmz399【附源码+数据库+部署+LW】

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。 系统的选题背景和意义 选题背景: 随着移动互联网的快速发展和人们生活水平的提高,外卖点餐已经成为现代生活中的一种常见方式。然而,传统的外卖点餐方式往往需要电话订

    2024年02月03日
    浏览(56)
  • SQL Server数据库如何添加Oracle链接服务器(Windows系统)

    官方下载地址:https://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html 1.2.1 下载的压缩包解压位置   比如我直接放到D盘根目录 1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行,否则会报错 使用管理员打开终端,运行如下命令: 在系统环境变量中,为Path添加“

    2024年02月14日
    浏览(84)
  • Linux系统部署SQL Server结合内网穿透实现公网访问本地数据库

    简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的sqlserver数据库,而无需公网IP,无需设置路由器,亦无需云服务器。 下载 SQL Server 2022 (16.x) Red Hat 存储库配

    2024年04月10日
    浏览(61)
  • 计算机毕业设计springboot基于微信小程序的餐厅点餐系统的设计与实现c1a249【附源码+数据库+部署+LW】

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。 系统的选题背景和意义 选题背景: 随着移动互联网的快速发展和智能手机的普及,人们对于餐饮服务的需求也在不断增加。传统的餐厅点餐方式存在着排队等候时间长、点餐过程

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包