帮助数据库设计

时间:2010-06-10 00:32:47

标签: database ms-access database-design

嘿,我对数据库设计不熟悉,并且在尝试解决这个问题时遇到了麻烦。我有两个表Team和Fixtures。球队拥有多排橄榄球队,而Fixture每排有2支足球队(主队和客队)。我想将团队ID链接到home_team和away_team,但它不允许我这样做。请告诉我如何解决这个问题。

这是我的表/关系的图像 http://i49.tinypic.com/288qwpg.jpg

5 个答案:

答案 0 :(得分:5)

以下是您可以做的事情:

团队表

Team_ID
Team_Name

灯具表

Fixture_ID
Home_Team_ID
Away_Team_ID

Team表的Home_Team_IDAway_Team_ID链接。


这是将它们绑定在一起的SQL(在OpenOffice.org Base中完成,但我希望它也适用于你):

SELECT Fixture_ID,
       Home_Team.Team_Name AS Home_Team_Name,
       Away_Team.Team_Name AS Away_Team_Name
  FROM Team Home_Team,
       Team Away_Team,
       Fixture
  WHERE Home_Team.Team_ID=Fixture.Home_Team_ID
    AND Away_Team.Team_ID=Fixture.Away_Team_ID

如您所见,团队表有两个引用,但它们用别名(Home_TeamAway_Team)分隔。我希望这会有所帮助。

答案 1 :(得分:1)

因为您需要从灯具表中引用两个不同的团队(主页和离开),您需要添加团队表两次。如果你只添加一次,那么主场和客场必须与同一支球队有关,这当然没有意义。

来自一个桌子的团队加入了主队ID。第二个团队表中的团队加入了客队ID。

在访问权限中,您还可以重命名表格 - 为其添加别名。 (点击表格点击F4。这会显示属性 - 您可以输入别名。)对于链接到主队的表格,请将其称为“homeTeam”,同样称为“远程队伍”。

然后,您可以从这两个表中拖动名称列,以便并排查看每个灯具中的团队名称。

答案 2 :(得分:0)

根据MDMA的说明,您走在正确的轨道上。试试这个:

  1. 制作新的查询。
  2. 添加tblTeam
  3. 再次添加tblTeam(它会自动将自身重命名为tblTeam_1或类似内容)
  4. 添加tblFixture
  5. 将tblFixture.HomeTeam加入tblteam.id
  6. 将tblFixture.AwayTeam加入tblteam_1.id
  7. alt text http://i50.tinypic.com/nweipj.png

答案 3 :(得分:0)

对于Access 2007,最简单的解决方案是为表创建别名。

  1. 在关系窗口中“显示”表格(团队)两次
  2. 右键单击每个表并修改其属性
  3. 在属性对话框中,更改上面显示的表的别名(home_team,away_team)。
  4. 从每个别名(home_team,away_team)获取PK(team_id)并将其与您的灯具表相关联:

    (home_team.team_id - > fixtures.home_team_id; away_team.team_id - > fixtures.away_team_id)。

答案 4 :(得分:-1)

灯具表可以具有以下结构:

team_id INT,
team_type char(1) - 'A'代表Away,'H'代表家庭

因此,你有一个团队的两个实例,区别于一个标志,告诉它是否离开或是一个家庭案例。

这是一个选项,其他人可能有其他设计思路,只是等着看其他人的想法