我正在尝试创建有关与众多博彩提供商进行博彩的数据库架构。一些博彩提供商每池有15/13/16个其他游戏。
例如。提供商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?
我试图为每个池记录每个比赛的记录,这样我就可以记录特定庄家的下注价格以及派发百分比以供将来参考。
无论如何,这可以做到吗?
例如。提供商A(ID 1)拥有利物浦对曼城的15场比赛中有1场比赛,提供商B(ID 2)也具有13场比赛中的一场比赛。
我可以像下面这样记录吗?
Match ID 1
Provider ID 1,2
Home Team Liverpool
Away Team ManCity
Bookmaker Pinnacle
这是否可能,或者SQL无法将其存储到1个主要ID的ID?
尚未编码,目前正在创建数据库模式
最佳答案
这是外键的常见误解。如果您认为需要在一个记录的外键中存储两个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
现在具有两个外键,可以通过外键约束将两个提供程序链接到相同的匹配项来强制实施。关于mysql - 1个主要ID可以链接到一个表中的多个ID吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56529063/