1

在此处输入图像描述

我计划使用这个 SQL 模式来存储/生成各种运动的统计数据和球员数据。我想让它尽可能地不可知,但鉴于每项运动都有不同的得分和游戏玩法指标,我不得不在最后分解它。

4

1 回答 1

2

那里有两个“危险信号”:

每当您使用应该是外键值的值来命名表时,您几乎肯定会遇到问题:

  • NBA游戏性能
  • NCAAB表现

这些应该合并到GamePerformance并添加一个外键到League. 如果在 NCAAB 中没有“辅助”之类的东西(表之间的唯一区别),只需使其可以为空。

你应该这样做,因为:

  • 这两个表后面的代码可以是共享的
  • 如果您想开始支持另一个联赛的性能统计数据,您可以在不更改架构的情况下(而不是创建另一个表)
  • 您可以查询整体统计数据,或轻松比较联赛之间的统计数据(可能,但对拆分表不现实)

记住:

  • 与添加列相比,添加行是微不足道的
  • 与添加表相比,添加列是微不足道的

考虑到这些原则来设计您的架构,您的系统将更容易构建和维护。

于 2014-08-10T23:10:54.900 回答