嗨im新數據庫設計和麻煩試圖找出這一個。我有兩張牌桌球隊和賽程。球隊擁有一排排的足球隊,Fixture在每排球隊中都有2支球隊(主客場球隊)。我想將團隊ID鏈接到home_team和away_team,但它不允許我。請告訴我如何解決這個問題。幫助數據庫設計
這裏是我的表/關係的圖像 http://i49.tinypic.com/288qwpg.jpg
嗨im新數據庫設計和麻煩試圖找出這一個。我有兩張牌桌球隊和賽程。球隊擁有一排排的足球隊,Fixture在每排球隊中都有2支球隊(主客場球隊)。我想將團隊ID鏈接到home_team和away_team,但它不允許我。請告訴我如何解決這個問題。幫助數據庫設計
這裏是我的表/關係的圖像 http://i49.tinypic.com/288qwpg.jpg
因爲您需要從夾具表中引用兩個不同的球隊(主場和客場),所以您需要添加球隊表兩次。如果您只添加一次,那麼主客場都必須與同一隊伍相關,這當然是沒有意義的。
一張桌子上的團隊加入了主隊ID。第二隊表中的隊伍加入到客隊ID中。
在訪問中,您也可以重命名錶 - 給它一個別名。 (點擊桌面上的F4按鈕,這會產生屬性 - 你可以鍵入一個別名。)對於與主隊相關的表,可以稱它爲「homeTeam」,對於awayTeam類似。
然後,您可以從這兩個表格中拖動名稱列,以並排查看每個燈具中播放的團隊的名稱。
謝謝,像這樣? http://i49.tinypic.com/20z6xqh.jpg 當我嘗試將hometeam鏈接到hometeam時,它給了我這個錯誤「找不到主表的引用字段的唯一索引」我可以通過更改數據類型然而,在一些聯賽中,隊友和隊友會獨一無二地互相比賽3次,我需要投入兩場主場或客場比賽。 – Jonathan 2010-06-10 01:13:16
你誤會了 - 看起來你已經創建了兩個新表。我的意思是再次將相同的表格 - 團隊表格添加到圖表中,以便您擁有兩個Team表格實例和一個Fixtures表格實例。然後按照其他原始說明如何鏈接這些。 – mdma 2010-06-10 01:18:17
夾具表可以有這樣的結構:
TEAM_ID INT,
team_type CHAR(1) - 'A' 對了,「 H'爲家
因此,你有一個團隊的兩個實例,通過一個標誌來區分它是否離開或家庭情況。
這是一種選擇,其他人可能有其他的設計思路,只是等待和觀望其他人的想法是什麼
這裏是你能做什麼:
隊表
Team_ID
Team_Name
夾具表
Fixture_ID
Home_Team_ID
Away_Team_ID
Home_Team_ID
和Away_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_Team
和Away_Team
)。我希望這有幫助。
感謝您的迴應。這是我已經做的。但我的問題是我不能將team_id鏈接到home_team_id和away_team_id。當我嘗試鏈接到兩個時,它給了我一個錯誤。 – Jonathan 2010-06-10 00:45:27
由於您使用的是MS Access,因此您可以在關係視圖中創建兩個團隊表,然後將Home_Team_ID鏈接到第一個,將Away_Team_ID鏈接到第二個。 – 2010-06-10 01:02:24
您正在使用MDMA的說明正確的軌道。試試這個:
對於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)。
爲什麼沒有帶有away_team_id和home_team_id的表以及可選的pk? – 2010-06-10 00:36:03
你在用什麼數據庫? – RobS 2010-06-10 00:51:03
Microsoft Access 2007 – Jonathan 2010-06-10 00:54:42