2010-06-10 121 views
1

嗨im新數據庫設計和麻煩試圖找出這一個。我有兩張牌桌球隊和賽程。球隊擁有一排排的足球隊,Fixture在每排球隊中都有2支球隊(主客場球隊)。我想將團隊ID鏈接到home_team和away_team,但它不允許我。請告訴我如何解決這個問題。幫助數據庫設計

這裏是我的表/關係的圖像 http://i49.tinypic.com/288qwpg.jpg

+0

爲什麼沒有帶有away_team_id和home_team_id的表以及可選的pk? – 2010-06-10 00:36:03

+0

你在用什麼數據庫? – RobS 2010-06-10 00:51:03

+0

Microsoft Access 2007 – Jonathan 2010-06-10 00:54:42

回答

1

因爲您需要從夾具表中引用兩個不同的球隊(主場和客場),所以您需要添加球隊表兩次。如果您只添加一次,那麼主客場都必須與同一隊伍相關,這當然是沒有意義的。

一張桌子上的團隊加入了主隊ID。第二隊表中的隊伍加入到客隊ID中。

在訪問中,您也可以重命名錶 - 給它一個別名。 (點擊桌面上的F4按鈕,這會產生屬性 - 你可以鍵入一個別名。)對於與主隊相關的表,可以稱它爲「homeTeam」,對於awayTeam類似。

然後,您可以從這兩個表格中拖動名稱列,以並排查看每個燈具中播放的團隊的名稱。

+0

謝謝,像這樣? http://i49.tinypic.com/20z6xqh.jpg 當我嘗試將hometeam鏈接到hometeam時,它給了我這個錯誤「找不到主表的引用字段的唯一索引」我可以通過更改數據類型然而,在一些聯賽中,隊友和隊友會獨一無二地互相比賽3次,我需要投入兩場主場或客場比賽。 – Jonathan 2010-06-10 01:13:16

+0

你誤會了 - 看起來你已經創建了兩個新表。我的意思是再次將相同的表格 - 團隊表格添加到圖表中,以便您擁有兩個Team表格實例和一個Fixtures表格實例。然後按照其他原始說明如何鏈接這些。 – mdma 2010-06-10 01:18:17

-1

夾具表可以有這樣的結構:

TEAM_ID INT,
team_type CHAR(1) - 'A' 對了,「 H'爲家

因此,你有一個團隊的兩個實例,通過一個標誌來區分它是否離開或家庭情況。

這是一種選擇,其他人可能有其他的設計思路,只是等待和觀望其他人的想法是什麼

5

這裏是你能做什麼:

隊表

Team_ID 
Team_Name 

夾具表

Fixture_ID 
Home_Team_ID 
Away_Team_ID 

Home_Team_IDAway_Team_ID指向團隊表的鏈接。


這裏的SQL綁在一起(在OpenOffice.org基地做,但我希望它爲你的作品也一樣):

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)。我希望這有幫助。

+0

感謝您的迴應。這是我已經做的。但我的問題是我不能將team_id鏈接到home_team_id和away_team_id。當我嘗試鏈接到兩個時,它給了我一個錯誤。 – Jonathan 2010-06-10 00:45:27

+0

由於您使用的是MS Access,因此您可以在關係視圖中創建兩個團隊表,然後將Home_Team_ID鏈接到第一個,將Away_Team_ID鏈接到第二個。 – 2010-06-10 01:02:24

0

您正在使用MDMA的說明正確的軌道。試試這個:

  1. 建立一個新的查詢。
  2. 添加tblTeam
  3. 再次添加tblTeam(這將自動重命名爲tblTeam_1或類似的東西)
  4. 添加tblFixture
  5. 加入tblFixture.HomeTeam到tblteam.id
  6. 加入tblFixture.AwayTeam到tblteam_1.id

alt text http://i50.tinypic.com/nweipj.png

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)。