1个主要ID可以链接到一个表中的多个ID吗?

时间:2019-06-10 15:15:01

标签: mysql sql database primary-key

我正在尝试创建一个与众多博彩提供商进行的博彩有关的数据库架构。一些投注提供商每个池中有15/13/16个其他游戏。

例如提供商A(ID 1)拥有利物浦对曼城的15场比赛中有1场比赛,提供商B(ID 2)也具有13场比赛中的一场比赛。

我可以像下面这样记录吗?

createShape()

SQL是否可能或无法将1个主要ID存储到ID?

我试图记录每个池的每场比赛的记录,这样我就可以记录特定庄家的下注价格以及支付比例,以备将来参考。

无论如何,这可以做到吗?

例如提供商A(ID 1)拥有利物浦对曼城的15场比赛中有1场比赛,而提供商B(ID 2)也具有13场比赛中的一场比赛。 我可以像下面这样记录吗?

Match ID 1
Provider ID 1,2
Home Team Liverpool
Away Team Man.City
Bookmaker Pinnacle

SQL是否可能或无法将1个主要ID存储到ID?

尚未编码,目前正在创建数据库模式中

1 个答案:

答案 0 :(得分:2)

这是外键常见的误解。如果您认为需要在一个记录的外键中存储两个ID,则外键的位置不正确。

在您的情况下,如果一场比赛可以有多个投注者,而一个投注者可以具有许多比赛,则您需要一个多对多或“连接”表,将比赛与投注者链接。

您的架构可能看起来像这样:

table matches:

id  | Home Team | Away Team
----+-----------+-----------
 1  | Liverpool | Man.City


table providers:

id  | name
----+------------
  1 | Provider A
  2 | Provider B


table provider_matches:

provider_id | match_id
------------+----------
      1     |    1
      2     |    1

您的表provider_matches现在具有两个外键,可以通过外键约束将两个提供者链接到同一匹配项。