嘿,我对数据库设计不熟悉,并且在尝试解决这个问题时遇到了麻烦。我有两个表Team和Fixtures。球队拥有多排橄榄球队,而Fixture每排有2支足球队(主队和客队)。我想将团队ID链接到home_team和away_team,但它不允许我这样做。请告诉我如何解决这个问题。
这是我的表/关系的图像 http://i49.tinypic.com/288qwpg.jpg
答案 0 :(得分:5)
以下是您可以做的事情:
团队表
Team_ID
Team_Name
灯具表
Fixture_ID
Home_Team_ID
Away_Team_ID
Team表的Home_Team_ID
和Away_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_Team
和Away_Team
)分隔。我希望这会有所帮助。
答案 1 :(得分:1)
因为您需要从灯具表中引用两个不同的团队(主页和离开),您需要添加团队表两次。如果你只添加一次,那么主场和客场必须与同一支球队有关,这当然没有意义。
来自一个桌子的团队加入了主队ID。第二个团队表中的团队加入了客队ID。
在访问权限中,您还可以重命名表格 - 为其添加别名。 (点击表格点击F4。这会显示属性 - 您可以输入别名。)对于链接到主队的表格,请将其称为“homeTeam”,同样称为“远程队伍”。
然后,您可以从这两个表中拖动名称列,以便并排查看每个灯具中的团队名称。
答案 2 :(得分:0)
根据MDMA的说明,您走在正确的轨道上。试试这个:
答案 3 :(得分:0)
对于Access 2007,最简单的解决方案是为表创建别名。
从每个别名(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'代表家庭
因此,你有一个团队的两个实例,区别于一个标志,告诉它是否离开或是一个家庭案例。
这是一个选项,其他人可能有其他设计思路,只是等着看其他人的想法