1
我想創建一個足球比分數據庫。如何設計我的數據庫?
顯然,我們有:
- 國家(荷蘭,德國,(但也是歐洲))
- 比賽(荷甲,德甲聯賽,歐洲聯賽)
- 隊 (特溫特,拜仁慕尼黑,馬德里競技隊)
- 球員(Luuk de J翁,諾伊爾,蒂亞戈·門德斯)
- 匹配(特溫特 - 埃因霍溫,拜仁 - 勒沃庫森等)
- 活動(目標由盧克·德容第40分鐘)
我進球「M使用在我創建下面的方案Dezign:
顯然,競爭勢必一個國家,一個球員到隊,E tc。
但是後來出現了一些問題。一個事件屬於一個匹配和一個玩家。所以該事件可以得到match_id
和player_id
。但是,任何球隊的任何球員都可以在他不屬於的比賽中「得分」(C隊的球員可以在A隊和B隊的比賽中得分)。我怎樣才能限制這個例子?
此外,一支球隊可以在其「正常」比賽中競爭,也可以參加歐冠聯賽。因此,Team實體中的一個簡單的competition_id是不夠的。
你有什麼建議嗎?
編輯迴應菲利普
查看已添加圖片的問題,你的意思是這樣的?我可以看到它確實會對比賽得分問題之外的球員起作用。但是我怎麼能限制兩個以上''陣容'具有相同的'match_id'? – nhaarman 2012-03-09 14:59:22
陣容中沒有'match_id',而是Match中的'home_lineup_id'和'away_lineup_id'。這樣,每場比賽只能有兩個陣容,而且不會丟失主/主信息。 – 2012-03-09 20:23:54
我再次編輯了圖像。非常感謝,我認爲我還有最後一個問題。當我在'LineupPosition'中創建條目時,我可以將來自多個團隊的玩家添加到同一個'lineup_id'。這可以派上用場(例如國家隊),但對於'正常'比賽來說,這是不可能的。對此有何想法? – nhaarman 2012-03-09 21:22:01