我的老师说这没有规范化,我不明白为什么

时间:2019-01-24 13:08:12

标签: access-vba

我的数据库是关于一个游戏团队的,并且我有一个名为“玩过的游戏”的表,其中的列是游戏ID,游戏日期,地图,对手,我们的得分和对手得分。 老师声称对手得分应该在另一个表格中,因为它与“对手”列相关,而且我不明白为什么以及看起来如何

2 个答案:

答案 0 :(得分:1)

归纳为salopp,归一化意味着您可以防止任何重复。例如,您有一个人和相关的电话号码。您可以这样:

Person    Type     Number
  A      Mobile    001234
  A      Mobile    004444
  A      Phone     005555

您现在拥有“人物和类型”作为重复项。因此,您采用以下结构:

PersonID    Person
   1          A

PersonID    PhoneID
   1           1
   1           2
   1           3

PhoneID      TypeID    Number
   1           1       001234
   2           1       004444
   3           2       005555

TypeID        Type
  1          Mobile
  2          Phone

现在,如果将所有内容链接在一起(PersonID到PersonID,PhoneID到PhoneID,TypeID到TypeID),您将得到我编写的第一个表。这种结构还可以确保通过数据库完整性约束正确执行您的依赖关系(这对于更新,删除等查询是必需的)。

如果您将此系统应用于游戏团队,则可以这样操作:

  • 带有Team和TeamID的表
  • 将团队链接到结果的表:GameID,HomeTeamID,GuestTeamID,ResultID
  • 带有结果和ResultID的表
  • GameID表,以获取有关游戏的更多信息(例如时间,地点等)
  • 具有TeamID和PlayerID的表
  • 具有玩家ID和更多玩家信息的表格(您必须在此考虑玩家是否可以参加多个团队)

答案 1 :(得分:0)

怎么样...

  1. 表1:关于游戏的全部-在此处具有所有可能的游戏属性。这将成为您的尺寸表。
  2. 表2:关于玩家的所有信息-在这里拥有所有可能的玩家(包括对手,因为他们也是玩家)。这将成为您的尺寸表。
  3. 表3:有关事件的所有信息-在此处具有所有可能的事件(与比赛相关)。这就是您的事实表。