【问题标题】:MySQL optimizing simple databaseMySQL优化简单数据库
【发布时间】:2018-03-16 13:03:39
【问题描述】:

一个真正的菜鸟问题,但我真的很难理解这个问题的逻辑。

什么是链接tournament_IDtournament_name 而不必创建另一个表(或者我应该创建另一个表?)的最佳方法

注意tournament_ID 有一个 AI PRIMARY KEY,但与 tournament_name 不正确匹配。

示例

桌上锦标赛

当前设置是tournament_ID AI PRIMARY KEY。因此,我如何正确地将其链接到 tournament_name

【问题讨论】:

  • 您应该创建一个名为 tournaments 的新表,其中存储 AI 主键 id 和锦标赛名称,并创建第二个名为锦标赛团队的表,并将锦标赛 id 添加为引用锦标赛表主键的外键.
  • 我是否有可能绕过新表的创建
  • 是的。您可以完全停止使用关系数据库管理系统

标签: mysql database optimization


【解决方案1】:

您应该创建一个数据透视表来存储每个团队的参与和结果。

在您当前的数据库设计中,存在数据重复的可能性。

我建议的数据库设计是

  • 团队
  • 锦标赛
  • team_tournaments(id、team_id、tournament_id、日期、结果)

并创建一个视图以通过连接获取结果。

【讨论】:

  • 日期?你会在日期里放什么?
  • 我建议不要在 MySQL 中创建视图。它们看起来是个好主意,但实际上很少能比常规查询提供任何好处。
  • 日期是指对这种关系很重要的任何其他数据
  • 井视图有它自己的优势,比如它可以帮助我们简化复杂的查询、访问控制、计算值。
  • 是的,如果我们正在更改视图中使用的基表,我们确实需要注意。
猜你喜欢
  • 2012-07-20
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多