0

在创建实体关系模型时,我遇到了一个困惑:

这是两个实体的示例:

公司(comp_id(pk),comp_name)

topCompanies (rank(pk), comp_id(fk)) *包含前十名或前百名公司的列表

这不是一个专业化示例,因为实体 topCompanies 不能单独存在,它只包含所有 comp_id(s),例如前十名或前一百名。所以这意味着 topCompanies 是一个弱实体,因为它不能单独存在。现在他们可以有“是”关系还是“是”关系仅限于继承/专业化示例?如果不是,我应该如何描述他们的关系?

另外,在阅读 ERD 时有什么约定吗?从左到右/从右到左?

4

2 回答 2

1

首先,让我们弄清楚术语。实体和表不是一回事。表(物理模型)表示关系(逻辑模型),在ER(概念模型)中分为实体关系和关系关系,分别记录有关实体集和关系集的事实。

company实体集由comp_id两个表中的列表示。company关系/表将实体company集(通过其标识符/键)与名称的值集相关联。topCompanies关系/表将实体company集(通过其标识符/键)与rank.

rank实体集还是值集?ER 通常要求确定关系的任何集合都是实体集,因此假设有一个名为 的实体集,由列ranking标识和表示。rank这个ranking实体集和实体集有关系company,就是我们在topCompanies表中看到的。

因此,topCompanies既不是弱实体,也不是 的子类型company。弱实体集由其父实体集的键和本地区分属性标识。子类型实体集由与超类型相同的键标识。但是,topCompanies关系/表根本不依赖于comp_id。相反,comp_id取决于rank.

这是一个描述它的实体关系图:

顶级公司ER图

于 2016-12-11T21:38:02.927 回答
0

topCompany 是 Company 的子集。你的关系是对的。topCompany 是一家公司

所以 topCompany 有一个指向 Company 的外键。它并不弱,因为它有一个主键(等级)。

于 2016-12-11T07:22:42.683 回答