在创建实体关系模型时,我想出了一个混乱:
这是两个实体的示例:
company(comp_id(pk),comp_name)
topCompanies(rank(pk),comp_id(fk))*包含前十名或 百家公司
它不是一个专业化的例子,因为实体topCompanies不能单独存在,它只包含所有comp_id(例如前十或百)。所以这意味着顶级公司是一个弱势实体,因为它不能独立存在。现在他们可以拥有'是'关系还是'是'关系仅限于继承/专业化的例子?如果不是那么我该如何描述他们的关系?
此外,阅读ERD时是否有任何约定?从左到右/从右到左?
答案 0 :(得分: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
。
这是描述它的实体关系图:
答案 1 :(得分:0)
topCompany是公司的子集。你的关系是正确的。 topCompany是一家公司
所以topCompany有一个指向公司的外键。它没有弱,因为它有一个主键(等级)。