【问题标题】:Schema design: many to many plus additional one to many模式设计:多对多加上额外的一对多
【发布时间】:2010-05-05 14:13:59
【问题描述】:

我有这种情况,但我不确定它应该如何在数据库中建模。我试图建模的对象是:球队、球员、球队球员成员资格,以及给定球队中每个球员的到期费用清单。因此,费用取决于球队和球员。

所以,我目前的方法如下:

**teams**
  id
  name

**players**
  id
  name

**team_players**
  id
  player_id
  team_id

**team_player_fees**
  id
  team_players_id
  amount
  send_reminder_on

Schema layout ERD

在此架构中,team_playersteamsplayers 的联结表。而表team_player_fees 的记录属于联结表的记录。

例如,球员 A 在球队 A 中,并且在 8 月和 2 月到期的费用为 10 美元和 20 美元。球员 A 也在球队 B 中,并且在 5 月和 6 月到期的费用为 25 美元和 25 美元。每个球员/球队组合可以有不同的费用。

问题:

  • 有没有更好的方法来处理这种情况 一个场景?
  • 有这种类型的术语吗 关系? (所以我可以用谷歌搜索)或者知道任何具有类似结构的参考资料?

【问题讨论】:

    标签: database database-design schema schema-design


    【解决方案1】:

    这是一个完美的设计。联结表(AKA 交集表)具有自己的属性(例如 joining_date)并可以包括从属表,这种情况并不少见。据我所知,这种安排没有特殊的名称。

    感觉奇怪的原因之一是这些表通常不存在于逻辑数据模型中。在那个阶段,它们由多对多连接表示法表示。只有当我们得到物理模型时,我们才必须实现连接表。 (当然很多人跳过逻辑模型,直接进入物理模型。)

    【讨论】:

    • 感谢您的反馈!我有一个带有一些额外列的连接表,但从来没有一个带有依赖表的连接表,所以我只是想确保没有我在某处遗漏的模式。
    猜你喜欢
    • 2019-06-12
    • 2012-07-29
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2021-09-13
    • 2012-03-01
    相关资源
    最近更新 更多