首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >E图和关系表

E图和关系表
EN

Stack Overflow用户
提问于 2017-12-05 04:44:22
回答 1查看 2.9K关注 0票数 1

我需要使用这个描述来生成E图,然后将其简化为关系表。稍后,需要在SQL中创建表,但首先,我希望得到正确的表。

考虑以下对快餐链应用程序的要求。这个快餐连锁店可以有几家餐馆。每家餐厅都有一名经理和一名助理经理(与经理不同),以及其他几名员工,如收银员和清洁人员。我们知道所有员工的姓名、地址、电话和薪水。每家餐厅都会跟踪自己的存货,所以它知道每家店有多少商品。每个项目都有一个具有名称和地址的提供程序。顾客去餐馆买食物(物品)。有两种类型的客户:常客和贵宾客户。快餐连锁店跟踪每个顾客的姓名、地址和电话。然而,对于VIP客户,商店也会跟踪客户的生日。商店记录客户的每一次购买,记录购买日期、参观总金额,并列出客户购买的所有物品。每次购买都是由客户进行的,并与出纳员相关联。

我对E图的第一次尝试是:

我在桌子上的尝试看上去像是:

代码语言:javascript
复制
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)

任何帮助都是非常感谢的!谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-06 23:11:52

你的急诊室有很多错误。

,首先,:最好深入阅读一本数据建模书。

请参阅:How to become a good database designer?

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

  1. 经理和助理经理不能是属性。他们是雇员的类型。您可以在餐厅和员工之间建立一对一的关系(名为Manager或Assistant_Manager) (每个人的关系是经理和助理经理)。
  2. 根据您的解释,最好有一个员工类型实体。
  3. 项的提供程序可以转换为实体。
  4. 您应该将purchases_id放入项中。
  5. 采购与员工之间的关系应该是多对一的(每个员工可以处理多个采购,而每个采购则由一个员工处理)。

当然,每个员工一次只能处理一次购买。但是在设计ER时,我们应该考虑时间而不是当时的时间。(例如:每名员工一天内处理多项采购)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47646241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档