0
我迷失在建模與傳遞依賴關係的關聯。以下是相應的ERM:如何建模與傳遞依賴關係?
一場比賽有一個主隊,一個客隊(我們堅持以主隊爲簡單起見)。因此,我會在比賽中包含一個team_id屬性。
現在,我如何確保比賽中維持的球隊參加了比賽的聯賽?我願意引入連接表,但看不出如何保持對傳遞性依賴「團隊的信息 - >戲劇在 - >比賽 - >是的部分 - >聯盟 - >與參與 - >球隊「
我迷失在建模與傳遞依賴關係的關聯。以下是相應的ERM:如何建模與傳遞依賴關係?
一場比賽有一個主隊,一個客隊(我們堅持以主隊爲簡單起見)。因此,我會在比賽中包含一個team_id屬性。
現在,我如何確保比賽中維持的球隊參加了比賽的聯賽?我願意引入連接表,但看不出如何保持對傳遞性依賴「團隊的信息 - >戲劇在 - >比賽 - >是的部分 - >聯盟 - >與參與 - >球隊「
我假設都隊必須在比賽的聯賽。解決方案涉及重疊的約束和重疊的外鍵引用。
您顯示了團隊和聯盟之間的m:n關係。匹配將引用此表。
create table team_leagues (
team_id ...,
league_id ...,
other_columns ...,
primary key (team_id, league_id),
foreign key (team_id) references teams (team_id),
foreign key (league_id) references leagues (league_id)
);
並且在聯賽和比賽之間有1:n的關係。這裏有重疊的限制。
create table matches (
home_team_id ...,
guest_team_id ...,
match_start_time ...,
league_id ...,
primary key (home_team_id, match_start_time),
unique (guest_team_id, match_start_time),
foreign key (home_team_id, league_id)
references team_leagues (team_id, league_id),
foreign key (guest_team_id, league_id)
references team_leagues (team_id, league_id)
);
無論matches.league_id還需要一個外鍵引用聯賽是依賴於應用程序。我想認爲它應該足以引用team_leagues,但。
我被鎖定在Ruby on Rails世界中,它不支持外鍵,所以我甚至沒有考慮使用外鍵約束。非常感謝 - 非常感謝。 – emrass