• I agree with Steve... a game is always between 2 teams, so I would get rid of GameTeam and just have a foreign key to Team for HomeTeam and AwayTeam in the Game table.

    I would also have GamePlayer as the many-to-many link between Game and Player. Goal should then be a child of GamePlayer only. The way your diagram looks, the only route from Game to Player is via Goal... if a player doesn't score a goal there will be nothing to link a Player to a Game.