【JUST】数据库课设:点餐管理系统

一、系统分析

1.1 项目背景

1.1.1  项目分析     

       随着科技的快速发展,消费者希望得到更快捷、便利的就餐体验。他们越来越倾向于使用电子设备进行点餐和支付,且对个性化服务的需求日益增长。点餐管理系统旨在通过技术手段,提升餐饮服务的效率和质量,满足现代消费者的需求。与此同时,餐饮企业面临着运营效率、成本控制、顾客满意度提升等挑战。点餐管理系统通过使用先进的信息技术,帮助餐饮企业优化服务流程,提高管理效率,降低运营成本,并实现数据驱动的决策支持。此外,随着环保意识的提升,无纸化点餐也成为餐饮业的一个发展趋势。点餐管理系统将支持电子菜单和在线点餐,减少纸张的使用,符合可持续发展的理念。

1.1.2项目可行性

技术可行性
(1)数据库技术:采用成熟的数据库管理系统(MySQL),确保数据的稳定性、安全性和可扩展性。

(2)软件开发技术:利用成熟的软件开发框架(PyQT5)和编程语言(Python),实现系统的快速开发和稳定运行。

(3)网络安全技术:采用防火墙、数据加密等技术手段,保障系统数据的安全传输和存储。

经济可行性
(1)成本效益分析:通过系统自动化处理订单、库存管理等功能,降低人力成本;提高顾客满意度,增加回头客数量,提升营业收入。

(2)投资回收期:根据餐饮企业规模和运营情况,预计系统在较短时间内能够实现投资回收。

(3)风险评估:对系统开发、实施和运营过程中可能出现的风险进行评估,并制定相应的应对措施。

社会可行性
(1)符合法律法规:系统开发和使用需遵守国家相关法律法规,确保系统合规性。

(2)用户需求满足:通过市场调研和用户需求分析,确保系统能够满足餐饮企业和顾客的实际需求。

(3)社会效益:提高餐饮企业的服务质量和运营效率,促进餐饮业的健康发展;优化顾客就餐体验,提升社会福祉。

1.2 需求分析

        点餐管理系统围绕提升顾客体验和优化餐饮企业运营两大核心目标展开。对顾客而言,系统提供用户友好的界面,支持顾客轻松浏览菜单、点餐、支付,并实时查看订单状态。对餐饮企业而言,点餐管理系统着眼于数据的收集与分析,将帮助餐厅收集顾客的点餐数据、偏好和反馈,为餐厅提供宝贵的数据支持,帮助他们做出更加精准的市场定位和营销策略。

1.2.1 总体概述:

  • 顾客需求:登录界面、查阅菜品、选购菜品、查阅订单、服务评价
  • 商家需求:员工信息 、订单结账、菜单信息、餐桌信息

1.2.2 点餐阶段数据详解:

下订单阶段需要的数据

  • 顾客信息:包括顾客编号。
  •  订单信息:包括订单编号、消费时间。
  •  餐桌信息:包括编号、员工id

点菜阶段需要的数据: 

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

结账阶段需要的数据:

  •  订单信息:包括订单编号、顾客编号
  •  菜品信息:包括菜品编号、菜品名称、菜品数量等。
  •  员工信息:包括员工工号
  •  折扣信息:包括消费金额、折扣数 

员工管理需要的数据:

  • 员工档案:包括工号、姓名、性别、职位

顾客管理需要的数据:

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

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

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

1.2.3数据操作:

数据录入

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

数据更新/删除

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

数据查询

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

点餐管理系统顶层数据流图:

第0层数据流图:

二、数据库系统的实现

2.1系统功能设计

2.1.1实体关系

菜单,餐桌对顾客:一对多的关系,所有顾客都可以查看菜单进行点菜等操作。多个顾客可以使用一个餐桌。

员工对餐桌:一对多的关系,一个服务员可以服务多个餐桌。每个餐桌都需要服务员。

顾客对评价表:多对多的关系,每个顾客都可以填写评价表,同时顾客可以多次填写评价。

订单对折扣规则:多对一的关系,每个订单都对应一个折扣规则。

顾客对订单:一对多的关系,顾客可能不止一个订单也可能多次下单。(顾客在餐厅不止消费过一次,有多次消费记录。)

2.1.2 数据完整性

主键约束:每个实体都需要一个唯一的主键或主键组,如用户的id,菜品的名字,订单的id,卓位的桌号以及员工的id等。

外键约束:在相关表之间建立外键约束,以确保数据的引用完整性。

2.1.3系统性能需求

数据库优化:通过索引、分区等技术提高数据库查询速度和数据访问效率,以满足系统可扩展性的需求。

权限管理:确保只有授权的用户才能访问和修改数据库中的数据。

2.2物理结构设计

1. 用户表(user)

注解属性数据类型是否为NULL主/外码
用户IDUidvarchar(30)NOT NULL主码
用户名Unamevarchar(30)
密码Upasswordvarchar(30)NOT NULL
联系电话Uphonevarchar(30)
注册日期Rdatevarchar(30)

2. 菜品表(menu)

注解属性数据类型是否为NULL主/外码
菜品编号Fidvarchar(30)NOT NULL主码
菜品名Fnamevarchar(30)NOT NULL
价格Fpricedecimal(10,2)NOT NULL

3. 订单表(order)

注解属性数据类型是否为NULL主/外码
订单IDOidvarchar(30)NOT NULL主码
下单时间setTimevarchar(30)
订单状态Ostatevarchar(30)
桌号Tidvarchar(10)NOT NULL外码
用户IDUidvarchar(30)NOT NULL外码

4. 桌位表(table)

注解属性数据类型是否为NULL主/外码
桌号Tidvarchar(10)NOT NULL主码
员工IDSidvarchar(30)外码

5. 员工表(staff)

注解属性数据类型是否为NULL主/外码
员工idSidvarchar(30)NOT NULL主码
员工姓名Snamevarchar(30)
职位Spositionvarchar(30)
性别Ssexvarchar(8)NOT NULL
年龄SageintNOT NULL

6.评价表assess

注解属性数据类型是否为NULL主/外码
订单IDOidvarchar(30)NOT NULL主码/外码
用户IDUidvarchar(30)NOT NULL主码/外码
评价feelingvarchar(500)

7.折扣规则(rules)

注解属性数据类型是否为NULL主/外码
VIP等级vipint主码
升级所需经验值expint
折扣discountdecimal(3,2)NOT NULL

                                                                                                                             

8.消费记录(consumptions)

注解属性数据类型是否为NULL主/外码
用户IDUidvarchar(30)NOT NULL 外码
订单IDOIdvarchar(30)NOT NULL 主码/外码
支付时间paytimevarchar(30)
折扣前金额consumptiondecimal(10,2)NOT NULL
折扣discountvarchar(30)
折扣后金额mondecimal(10,2)NOT NULL

9.订单详情表(detail)

注解属性数据类型是否为NULL主/外码
订单IDOidvarchar(30)NOT NULL主码
数量numint
价格Fpricedecimal(10,2)
菜品名Fidvarchar(30)NOT NULL外码

2.2概念结构设计

ER图

2.3数据库系统实现

1.用户表(user)

create table user

(

Uid varchar(30) not null,

Uname varchar(30),

Upassword varchar(30) not null,

Uphone varchar(30),

Rdate varchar(30),

primary key(Uid)

);

2.菜品表(menu)

create table menu

(

Fid varchar(30), 

Fname varchar(30), 

Fprice decimal(10,2), 

primary key(Fid)

);

3.订单表(order)

create table orders

(

Oid varchar(30) not null,

setTime varchar(30),

Ostate varchar(30),

Tid int not null,

Uid varchar(30) not null,

primary key(Oid),

foreign key(Tid) references table_seat(Tid),

foreign key(Uid) references user(Uid)

);

4.桌位表(table)

create table table_seat

(

Tid int not null,

Sid varchar(30),

primary key(Tid),

foreign key(Sid) references staff(Sid)

);

5.员工表(staff)

create table staff

(

Sid varchar(30) not null,

Snamee varchar(30),

Sposition varchar(30),

Ssex varchar(8) not null,

Sage int not null,

primary key(Sid)

);

6.评价表(assess)

create table assess

(

Oid varchar(30) not null,

Uid varchar(30) not null,

feeling varchar(500),

primary key(Oid),

foreign key(Oid) references orders(Oid),

foreign key(Uid) references user(Uid)

);

7.折扣规则(rules)

create table rules

(

value int,

discount decimal(3,2) not null,

primary key(value)

);

8.消费记录(consumptions)

create table consumptions

(

Uid varchar(30) not null,

Oid varchar(30) not null,

paytime varchar(30),

consumption decimal(10,2) not null,

mon decimal(10,2) not null,

primary key(Oid),

foreign key(Oid) references orders(Oid),

foreign key(Uid) references user(Uid)

);

9.订单详情表(detail)

create table detail

(

Oid varchar(30) not null,

Fid varchar(30) not null,

num int,

foreign key(Oid) references orders(Oid),

foreign key(Fid) references menu(Fid)

);

视图:

create view view_menu

as

select Fname,Fprice

from menu;

create view view_rules

as

select value,discount

from rules ;

存储过程:

create procedure display_orders(in uuid varchar(11))

begin

select Oid,setTime,Ostate,Tid

from orders

where uuid = orders.Uid;

end

create procedure display_detail(in ooid varchar(20))

begin

select Fname,num

from detail

where ooid = detail.Oid;

end

create procedure display_consumptions(in uuid varchar(11))

begin

select Oid,paytime,consumption,mon

from consumptions

where uuid = consumptions.Uid;

end

触发器

create trigger update_state

after update on consumptions

for each row

begin

if (new.paytime is not null) then

update orders

set Ostate = '已完成'

where new.Oid = orders.Oid;

end if;

end

登录界面:

注册界面:

注册时账号密码都不能为空:

密码和确认密码须一致:

注册成功:

登录时账号密码不能为空:

账号要存在,密码要正确:

主界面:

菜品选购界面:

选择菜品时会实时显示总金额:

菜品和桌号都要选择

订单记录界面:

查看订单详情:

消费记录界面:

用户中心界面:

个性设定用户名或电话:

提供密码修改功能:

新密码不能为空:

新密码和确认密码需要一致:

更新成功:

查看会员规则详情:

意见评价:

评价成功:

每个订单只能评价一次:

员工可以修改订单状态:

员工可以查看已完成订单的信息:

员工可以查看订单详情:

员工可以查看顾客的评论:

员工可以看桌位负责情况:

指导老师:王   艳

小组成员:邓振辉

高保强

李明智

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值