gpt4 book ai didi

MYSQL关系模式规划

转载 作者:行者123 更新时间:2023-11-30 01:35:25 24 4
gpt4 key购买 nike

我正在尝试找出管理此数据存储问题的最佳方法......

我有一张包含球员、球队和比赛的表格。

一个团队可能会参加 3 项比赛。

一名球员属于一个球队,但只能有资格参加其球队参加的 3 场比赛中的 2 场。同样,同一球队的另一名球员也可能有资格参加所有 3 场比赛。

我不想在每次比赛的玩家表中添加一列,因为我随后将放弃关系模型。我需要另一个表“competition_eligiblity”吗?这看起来工作量很大!

有什么建议吗?

谢谢

艾伦。

最佳答案

是的,您确实需要一个竞赛资格表。

将它放在那里真的不再需要任何工作。实际上,工作量会更少:

  • 如果涉及到向表格添加新列,那么将来添加新的竞赛将会非常痛苦。
  • 如果竞赛资格存储在列中,则执行查询来获取资格信息将成为一场噩梦。

假设您想要列出玩家有资格参加的所有比赛。这是您的查询:

select player, "competition1" from players where competition1_eligible = 1
union all
select player, "competition2" from players where competition2_eligible = 1
union all
select player, "competition3" from players where competition3_eligible = 1
union all
select player, "competition4" from players where competition4_eligible = 1

听起来很有趣,是吗?然而,如果您有资格表,那么获取此信息将非常容易。

更新:将所有资格信息存储在单个值中将是一场噩梦,因为想象一下尝试从字符串中提取该信息。这超出了正常 SQL 查询的限制。

创建一个新表确实是一件微不足道的工作,您只需要做一次。如果你这样做的话,之后的一切都会容易得多。

关于MYSQL关系模式规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960909/

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