弱实体是否总是暗示其父实体的ID依赖性?

时间:2017-11-20 21:53:47

标签: database relational-database entity-relationship erd

我试图映射这里描述的这种关系:

"团队玩游戏。一支球队一个赛季最多可以打40场比赛。每场比赛由2支球队进行。您必须跟踪游戏中每个团队的得分。团队可能永远不会玩游戏,但如果安排了游戏,则必须有2支队伍参与其中。"

这里的实体是团队和游戏。两者都有与实体相关联的ID,即teamID和gameID。常识告诉我游戏应该是一个弱小的实体,因为没有团队就没有游戏。但是,如果游戏有自己独特的ID,那么这是否意味着它不是一个弱实体?

另外,我如何为实体游戏创建关系表?如果游戏中只有2支球队参赛,那么游戏中的外键会是什么?我会在表中只有teamOneID *和teamTwoID *吗?

1 个答案:

答案 0 :(得分:0)

弱实体集不是依赖于另一个存在的实体集来确定的。弱实体集是无法通过其自身属性标识的实体集,并且依赖于与其标识的常规实体集的关系。如果Game具有自己的代理标识符,则它是常规实体集。

依赖于存在关系的概念称为完全参与。有关详细信息,请参阅我对is optionality (mandatory, optional) and participation (total, partial) are same?的回答。

至于命名外键列,我看到许多设计使用homeTeamIDawayTeamID,但如果两个团队都在远离他们的主场,那么角色的分配是任意的。对称关系可能会给数据库设计带来困难。如果没有破坏对称性的规则,您的查询必须检查任何给定teamID的两个字段,这会使查询复杂化并且效率低下。我之前使用过的一种方法是将较低的值存储在teamOneID中,将较高的值存储在teamTwoID中。