E-R图和关系表

时间:2017-12-05 04:44:22

标签: sql database relational-database schema entity-relationship

我需要使用此描述来制作E-R图,然后将其缩减为关系表。稍后在SQL中需要创建表,但首先我想让这些表正确。

请考虑快速食品链应用程序的以下一组要求。 这家快餐连锁店可以有几家餐馆。每个餐厅都有一位经理和一位经理 助理经理(不同于经理)和其他几个员工一样 收银员和清洁人员。我们知道所有人的姓名,地址,电话和工资 雇员。每个餐厅都会跟踪其库存,因此它知道每个库存的数量 项目在商店。每个项目都有一个提供者,其中包含名称和地址。 顾客到餐馆吃饭(物品)。有两种类型的客户:常客和VIP 顾客。快餐连锁店跟踪每个客户的姓名,地址和电话。对于 然而,VIP客户也会跟踪客户的生日。商店保持 跟踪客户每次购买,记录购买日期,总数 为访问支付的金额,并列出客户购买的所有商品。每次购买都是由客户进行的,并与收银员相关联。

我第一次尝试E-R图是这样的:

enter image description here

我在桌子上的尝试看起来像:

Restaurant(manager, assistant_manager)

Employees(id, name, address, phone, salary)

Items(item_id, provider, address)

Customer(customer_id, type, name, address, phone, VIP)

Purchases(customer_id, cashier_id, total_paid, date_bought, items_bought)

任何帮助表示赞赏!谢谢

1 个答案:

答案 0 :(得分:0)

你的ER有很多错误。

首先:最好深入阅读数据建模书 见:How to become a good database designer?

我列出了一些重要的错误:

  1. 经理和助理经理不能是属性。他们是员工的类型。您可以在餐厅和员工之间建立一对一的关系(具有Manager或Assistant_Manager的名称)(对于他们每个人:经理和助理经理)。
  2. 根据您的解释,最好有一个员工类型实体。
  3. 项目提供者可以变成实体。
  4. 您应该将purchases_id放入Items。
  5. 采购与员工之间的关系应该是多对一的(每个员工可以处理多个采购,每个采购由一个员工处理)。
  6. 当然,每个员工当时只能处理一次购买。但是当我们设计ER时,我们应该考虑时间而不是当时。 (例如:每个员工在一天内处理许多购买)