从用户故事到关系模型,设计餐厅管理系统的数据库
餐厅管理系统是一个网络应用程序。该系统旨在自动化餐厅的日常运营。餐厅是一种为世界各地的人们提供现成食物的商业场所。该系统旨在为餐厅和顾客提供服务便利。餐厅员工可以使用该系统来处理顾客及其订单,并帮助他们轻松查找空位或下单。该系统提供的服务包括:顾客通过系统进行点餐和预订、顾客信息管理、服务员信息管理、菜单信息管理和报表生成。成功登录后,顾客可以访问菜单页面,并根据所需时间选择菜品。该系统的主要目的是帮助餐厅管理员管理餐厅业务,并帮助顾客在线订餐和预订餐位。用户可以根据自己的喜好(例如价格范围和菜品类别)搜索菜单,然后下单。
用户故事
餐厅经理
作为餐厅经理:我应该能够更新餐厅信息
作为餐厅经理:我应该能够查看我店的每周销售额
作为餐厅经理:我应该能够查看餐厅的当前库存情况
顾客
作为顾客:我应该能够浏览菜单,查看餐厅提供的各种食物选项以及每道菜的价格。
作为顾客:我应该能够从菜单中选择菜品并将其添加到购物车/订单中。
作为顾客:我应该有一个购物车,其中包含所有已选择的菜品,并且可以随时访问。
厨师
:作为厨师:我应该能够查看当前的订单队列。
作为厨师:我应该能够接受订单
。作为厨师:订单完成后,我应该能够将订单状态更新为“已准备就绪”。
服务员
:作为服务员:我应该能够查看当前队列,了解哪些订单已准备好取餐。
作为服务员:我应该能够在公共队列中将订单标记为已取餐。
作为服务员:我应该能够查看顾客对餐食和服务的反馈。
供应
商:作为供应商:我应该能够查看库存,以便为厨师提供缺少的食材。
作为供应商:食材到货后,我应该能够将食材状态更新为“可用”。
作为供应商:我应该能够更新食材/食品的信息及其食用益处。
ER图
ER图用于表示ER模型。它包含给定场景下所有已知的实体、它们的属性、标识符以及实体之间存在的关系。
如上图所示,ER 图有六个实体,每个实体都由各种属性组成,包括实体的主键和其他属性,如名称、薪水、地址和电话。
关系模型
关系图是关系数据库的实体、这些实体中存在的属性以及这些实体之间关系的图形表示。
厨师
Chef id 是用于唯一标识厨师的标识符,数据类型为整数。Chef
name 是厨师的身份标识,数据类型为 varchar。Salary
是厨师月底的薪酬,数据类型为浮点数。
一顿饭
餐点 ID 是餐点表中的唯一标识符,数据类型为整数。
价格是与特定数量食物关联的金额,数据类型为浮点数。
名称是餐点的标识符,数据类型为字符型(varchar)。
厨师 ID 是唯一标识符,因为餐点与食物之间存在多对一的关系。
供应商
供应商 ID 是用于唯一标识供应商的 ID,数据类型为整数。
供应商名称是用于标识供应商的名称,数据类型为 varchar。供应商
所在城市是供应商所在的城镇,数据类型为 varchar。
电话号码是用于联系供应商的电话号码,数据类型为整数。
厨师 ID 是供应商表中唯一的标识符,因为供应商与厨师之间存在多对一的关系。
顾客
客户 ID 是用于唯一标识客户的信息,数据类型为整数。
客户姓名是用于标识客户的名称,数据类型为 varchar。
地址是客户居住的具体地点,数据类型为 varchar。
电话号码是用于联系客户的电话号码,数据类型为整数。
服务员 ID 是由于多对一关系而产生的唯一客户标识符。
服务员
服务员 ID 是用于唯一标识服务员的 ID,数据类型为整数。
姓名是用于标识服务员的姓名,数据类型为 varchar。
工资是服务员月底的报酬,数据类型为浮点数。
电话号码是用于联系服务员的电话号码,数据类型为整数。
成分
食材 ID 是用于标识服务员的唯一 ID,数据类型为整数。
名称是用于标识食材的名称,数据类型为 varchar。
描述是对餐点的描述,数据类型为 varchar。
餐点 ID 是食材表中唯一的标识符,因为食材与食材之间存在多对一的关系。
订单
客户 ID 是用于识别客户的唯一标识符,数据类型为整数。
餐食 ID 是餐食表的唯一标识符,数据类型为整数。
提供
供应商 ID 是用于标识供应商的唯一标识符,数据类型为整数。
配料 ID 是用于标识服务员的唯一标识符,数据类型为整数。
正常化
该表已符合第一范式,因为所有属性都是原子性的,并且每个表都由其唯一的属性标识。
该表也符合第二范式,因为所有非主键属性都函数依赖于主键属性。
但是,该表不符合第三范式,因为我们在供应商表中发现供应商地址可能依赖于供应商所在城市,所以我们拆分了供应商表并移除了地址属性,以确保不存在函数依赖或部分依赖。
总之,餐厅管理系统有助于餐厅经理更好地管理餐厅业务,并帮助顾客在线订餐和预订餐位。谢谢,希望您喜欢。
文章来源:https://dev.to/lontchi12/database-design-of-a-restaurant-management-system-from-user-story-to-relational-model-2jp1


