Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 我的老师说这不是';t正常化,我可以';我不明白为什么_Vba_Ms Access - Fatal编程技术网

Vba 我的老师说这不是';t正常化,我可以';我不明白为什么

Vba 我的老师说这不是';t正常化,我可以';我不明白为什么,vba,ms-access,Vba,Ms Access,我的数据库是关于一个游戏团队的,我有一个名为games played的表,其中我的列是游戏ID、游戏日期、地图、对手、我们的分数和对手分数。 老师声称对手的分数应该在另一个表中,因为它与对手列相连,我不明白为什么和它应该是什么样子 表1:所有关于游戏的信息-这里有所有可能的游戏属性。这将成为您的维度表 表2:所有关于球员的信息-这里有所有可能的球员(包括同样是球员的对手)。这将成为您的维度表 表3:所有关于事件的信息-在此处列出所有可能的事件(与比赛相关)。这将成为您的事实表 说它是salopp

我的数据库是关于一个游戏团队的,我有一个名为games played的表,其中我的列是游戏ID、游戏日期、地图、对手、我们的分数和对手分数。 老师声称对手的分数应该在另一个表中,因为它与对手列相连,我不明白为什么和它应该是什么样子

  • 表1:所有关于游戏的信息-这里有所有可能的游戏属性。这将成为您的维度表
  • 表2:所有关于球员的信息-这里有所有可能的球员(包括同样是球员的对手)。这将成为您的维度表
  • 表3:所有关于事件的信息-在此处列出所有可能的事件(与比赛相关)。这将成为您的事实表

  • 说它是salopp,规范化意味着防止任何重复。例如,您有一个人和相关的电话号码。你可以这样做:

    Person    Type     Number
      A      Mobile    001234
      A      Mobile    004444
      A      Phone     005555
    
    您现在有了人称和类型为duplikates。因此,应用以下结构:

    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),您将得到我编写的第一个表。此结构还确保依赖关系由数据库完整性约束正确实施(这是更新、删除等查询所必需的)

    如果您在游戏团队中应用此系统,您可以这样做:

    Person    Type     Number
      A      Mobile    001234
      A      Mobile    004444
      A      Phone     005555
    
    • 包含Team和TeamID的表
    • 将团队链接到结果的表:GameID、HomeTeamID、GuestTeamID、ResultID
    • 包含结果和结果的表
    • GameID表,用于获取有关游戏的更多信息(如时间、地点等)
    • 带有TeamID和PlayerID的表
    • <> LI>具有PrReRID和更多玩家信息的表(这里你必须考虑一个玩家是否可以在多个团队中玩)
    我不太明白你的意思,我应该分开还是不分开?如果我应该的话,上面这些是你问题的标准化版本。这称为3NF。此表格设置将使您更接近您的目标。注意,表3将有一个GameID字段引用表1,还有两个PlayerID字段引用表2。GameID是表1中唯一标识游戏的值。PlayerID是表2中唯一标识玩家的值,无论是对手还是非对手。将游戏信息表与表相结合是否会降低团队的标准化结果?因为对我来说,分割它们似乎很奇怪,因为它们有相同的密钥。这取决于你的数据。全球游戏信息,如日期和地点,不应与结果在同一张表中。但是时间可以在同一张表中。