gpt4 book ai didi

mysql - 在 ERD 建模中,关系是否映射到数据库表

转载 作者:行者123 更新时间:2023-11-29 12:16:28 27 4
gpt4 key购买 nike

下面是一个棒球联盟的实体关系。 enter image description here

我对关系和关系属性的理解有点困惑。

该图的说明如下:

enter image description here

根据描述,参与是一种关系,表现是参与的一个属性(复合体)。

问题:

  1. 参与者如何映射到数据库中的实际表?

  2. 是否有一个包含定义绩效字段的“参与者”表?

    {击球(AtBat#, Inning#, HitType, Runs, RunsBattedIn,偷垒)},{投球(局#,安打,跑垒,赢得跑位,三振,保送,出局,巴尔克斯,WildPitches)},{防守(局{FieldingRecord(位置,PutOuts、协助、错误)})}

  3. 类似地,Plays_For、Away_Team 和 Home_Team 也是表格。

  4. 当您在数据库(例如 MySql)中创建表时,关系如何与玩家、团队和游戏等实体/对象区分开来。

感谢您的帮助。

最佳答案

问题 1: Participates 将是一个实际的表,其中还包含 PlayerGame 的外键列作为性能的列。所有 M-N 关系都需要在单独的表中建模。

问题 2:为了保持它作为一个半像样的关系数据库,您必须将所有信息分成单独的列,以便每一列只能保存一个单一数据。如果您不分离数据,就会破坏第一范式,并且可能会在稍后的设计中遇到问题。

问题 3:由于这三个是 1-N,您也可以在 N 侧使用列来实现它们。例如,在 Game 表中,您可以有两个指向 Team 表的外键以及有关列中关系的所有数据。为了清楚起见,您也可以将这些关系作为单独的表。 作为旁注:您确定玩家-团队是 1-N 关系吗,以便如果玩家更换团队,则有关 StartDate 的历史信息和前一队的EndDate立即丢失?

问题 4:它们都受到完全相同的对待 - 没有区别。

关于mysql - 在 ERD 建模中,关系是否映射到数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com