基于Android的食堂点餐系统的设计与实现

2021-08-16 11:17鹿俊聪
科学技术创新 2021年22期
关键词:商铺菜品食堂

鹿俊聪

(电子科技大学信息与软件工程学院,四川 成都 610054)

1 概述

食堂就是一种既能满足上班族或者师生日常消费,也能达到良好膳食平衡的时代催产物。食堂有着经济适用、菜品众多且方便快捷的特点[1]。然而如今,本该是为了在用餐时间节约时间的食堂,却往往因为用餐人数基数大、高峰期人数暴增、食堂餐品质量参差不齐的原因,出现单个窗口排队队伍长效率低而部分窗口无人问津的情况,造成了极大的资源浪费——无论是时间还是食物[2]。由此可见,食堂缺乏有效的管理和与顾客的沟通。针对这些问题,本文要研发一个食堂点餐系统,在数据库设计的基础上,基于Java技术开发一款掌上APP,随时随地点餐,实时发表评价,以求从根源上解决资源调配的问题,做到工作吃饭两不误,也能有效督促食堂餐饮业的管理化[3]。

2 需求分析

食堂点餐系统,顾名思义,是为了满足点餐功能的APP。所以本APP的主体功能将围绕点餐下单出发,在此基础上衍生出为了提高食堂服务水平的评价体系。由此,本系统将涉及顾客、食堂商家和系统管理员的角色。

首先是实体商家的角色。该角色注册成功后还需要在系统中增加食堂商铺,登录即可进行商铺管理,即对菜品的增加、删除、更改和查询操作。一个商家可以有多家商铺,就涉及到商铺的管理,即商铺的增加、删除、更改和查询操作。在顾客下单后,打开订单管理界面,可以查看、接受订单。每次的顾客用餐评价都可以在评价界面看到。

其次是实体顾客的角色。角色注册登录后,先选择食堂,之后可以看到热门菜品推荐和食堂菜品,选择心仪的菜品下单,此时APP跳转到订单填写页面,可以选择堂食或者打包,完成下单。下单后,可以查看、修改订单。在完成订单后,可以对其进行评价,评价时可以选择为菜品打分,五星制。

最后需要系统管理员,主要职责是审验商家的资质、用户权限管理和用户信息管理的功能。

3 数据库设计

3.1 概念设计

概要设计是数据库设计的第一步。如图1所示,是食堂点餐系统的ER图设计,该图可以展示系统的概念设计。本系统的人物角色主要有顾客、商家和系统管理员三种,顾客主要完成的动作有注册、登录、浏览、下单和评价等,商家的主要完成动作有注册、登录、对菜品的增删改查和接单等,系统管理员主要是审核商家的资质和角色管理等动作。

图1 食堂点餐系统ER图

主要角色是一部分实体,还有一部分实体来自于与角色的联系。基于此,设计出了订单、菜品、食堂、食堂商铺和评价实体。

订单实体与顾客、菜品、商家和评价等实体有关。顾客主要是需要下单动作产生订单,而且一个顾客会产生多个订单,所以顾客和订单之间是一对多的关系。而对于订单和菜品,因为订单中会包含菜品信息,所以二者之间存在联系。当对于菜品形成订单时,因为订单中有可能包含多个菜品,所以订单和菜品是多对多的关系,但是在二者关系之中,存在多个数量的相同菜品该如何体现在同一订单中,所以需要在二者关系之中增添一个数量的属性,这样即使出现以上问题,也可以很好的解决。在订单和商家之间,主要是商家要接订单,并去改变订单的状态,以表示商家是否接单或者商家是否完成订单。在完成订单后,会有评价的形成,一个订单只能有一个评价,所以是一对一的关系。菜品实体与订单和食堂商铺有关。菜单实体与订单的关系不再赘述,而与食堂商铺的关系则是一对多的关系。食堂实体主要和食堂商铺有关,通过食堂可以查找到对应的食堂商铺,然而食堂实体只需要有食堂信息和食堂地址即可。食堂商铺实体和评价实体、商家实体、食堂实体和菜品实体有关。食堂商铺实体可以和评价实体有一对多的关系,这样一家商铺打开就可以看到他的所有评价。商家和商铺会有一对多的关系,存在并且允许一个商家开多个商铺。

3.2 逻辑设计

进一步进行逻辑设计。逻辑设计主要是完成数据库实体之间的联系、实体的主键和外键的确定、实体的属性等。关系数据库设计,可以遵循第一范式到第六范式,条件越来越严苛,冗余度越来越低。一般认为设计到第三范式或者巴斯-科德范式即可。此处挑选较为重要的订单和菜品进行呈现。Dishes菜品(Dis_id菜品编号,Dis_name菜 品 名称,Dis_desc菜品 描 述,Dis_pic菜 品 图 片,Dis_pric菜 品 价 格,Dis_Score菜 品 评 分,Store_id商铺编号)Order订单(Ord_id订单编号,Cus_id顾客编号,Bus_id商家编号Store_id商铺编号,money总金额,Dis_Ord_id订单菜品表编号,Is_packet是否打包Generate_order_time生成订单时间,Pick_food_time预计取餐时间,Ord_state订单完成状态)Order_Dishes订单菜品(Dis_id菜品编号,Ord_id订单编号,Num_dis菜品数量)。

3.3 物理设计

物理设计就是将以上的实体全部转化为数据库表,实体与实体之间的关系转化为约束的过程。在此展示最具有代表性的订单表Order。订单表主要用于保存顾客订餐的相关信息,其中的主要字段包括:Ord_id订单编号,Cus_id顾客编号,Bus_id商家编号,Store_id商铺编号,Dishes_id菜品编号,money总金额,Is_packet是否打包,Generate_order_time生成订单时间,Pick_food_time预计取餐时间,Ord_state订单完成状态。订单表结构如表1所示。

表1 订单表(Order)

4 系统实现

4.1 系统架构、关键技术

食堂点餐系统的核心需求是满足顾客点餐,商家接单的需求。所以针对核心需求,并在此基础上完善了售后服务和热榜服务,衍生出几大模块。该系统分别有浏览菜品模块、点餐模块、评价模块、用户模块、订单模块和商铺模块,其中用户模块包括注册和登录功能。

本系统采用postgreSQL数据库,前台采用H5技术,后台采用Java技术,整体采用spring boot框架,用Java语言开发的移动APP。

4.2 界面图

图2是一个顾客已经点好菜品,确认订单的界面。

图2 提交订单图

5 结论

本文主要阐述了食堂点餐系统的数据库部分的设计以及系统的最终实现。针对食堂在线的点单需求,设计了以订单下单接单为主的一系列交互动作,采用postgreSQL数据库使得数据库信息读取并发性更高。在经过H5和springBoot技术的实现和系统测试的支持下,该系统能够解决顾客提前点餐和商家管理店铺的需求,能解决食堂管理不善和时间物资浪费的问题。在未来的工作中,还会考虑单个APP占取较大内存的问题,以及根据个人喜好推荐菜品的相关研究。

猜你喜欢
商铺菜品食堂
学珍食堂
团膳菜品质量管理存在的问题及完善策略
“互助孝老食堂”值得推广
8月广州商业地产市场:商铺成交上升,写字楼及公寓下降明显
广州8月商业地产市场:进入下半年淡季,公寓、商铺成交仍有不错表现
迷惑菜品又来了
食堂
如何加强菜品加工过程中的卫生管理
食堂定律
三家商铺